\documentclass[12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[english,russian]{babel}
\usepackage{graphicx}
\usepackage{vmumath}
\usepackage{amsmath}
\usepackage{amsthm}
\usepackage{avo_book}
\usepackage{subcaption}
\usepackage[a4paper,left=15mm,right=15mm,top=30mm,bottom=20mm]{geometry}
\parindent=0mm
\parskip=3mm
\noaftermath
\pagestyle{empty}


\begin{document}




\begin{center}
\LARGE Основы перечислительной комбинаторики. Перечисление помеченных и непомеченных объектов.
\end{center}


\section{Комбинаторный смысл сложения и умножения производящих функций}

\myitem В первой главе мы ввели понятие обыкновенной и экспоненциальной производящих функций как элементов формальных степенных рядов $\C[[z]]$ и $\C_e[[z]]$, а также выписали формулы, позволяющие складывать и перемножать такие ряды. Настало время понять, каков же комбинаторный смысл имеют подобного рода операции. 


\mysubitem Рассмотрим пару конечных или счетных множеств $X$, $Y$. Поставим в соответствие каждому из этих множеств некоторые обыкновенные $(f(z)$ и $g(z))$ или экспоненциальные $(h(z)$ и $G(z))$ производящие функции. Так как производящие функции являются элементами кольца формальных степенных рядов, то их можно складывать и перемножать между собой. Разберем вначале комбинаторный смысл сложения пары экспоненциальных или обыкновенных производящих функций.

\begin{examp} Пусть $X$ есть счетное множество всех \emph{связных} графов. Приписывая любому такому графу, построенному на $n$-элементном множестве $U_n$ вершин, вес $z^n/n!\in\C_e[[z]]$, мы сопоставляем множеству $X$ экспоненциальную производящую функцию
$$
F(z)=a_0+a_1\dfrac{z}{1!}+a_2\dfrac{z^2}{2!}+\ldots+a_n\dfrac{z^n}{n!}+\ldots,
$$
коэффициенты $a_n$ которой описывают количество всех связных графов, которые мы можем построить на $n$-элементном множестве $U_n$.

Далее, пусть $Y$ есть счетное множество всех \emph{несвязных} графов, и пусть любому такому графу, построенному на $n$-множестве вершин $U_n$, также приписывается вес $z^n/n!\in\C_e[[z]]$. Тем самым мы ставим в соответствие множеству $Y$ экспоненциальную производящую функцию
$$
G(z)=b_0+b_1\dfrac{z}{1!}+b_2\dfrac{z^2}{2!}+\ldots+b_n\dfrac{z^n}{n!}+\ldots,
$$
коэффициенты которой подсчитывают количество всех возможных способов построить несвязный граф на $n$-элементном множестве вершин $U_n$.

Теперь практически очевидно, что производящая функция
$$
H(z)=F(z)+G(z)=(a_0+b_0)+(a_1+b_1)\dfrac{z}{1!}+(a_2+b_2)\dfrac{z^2}{2!}+\ldots+
(a_n+b_n)\dfrac{z^n}{n!}+\ldots
$$
соответствует счетному множеству $Z$ всех графов, а ее коэффициенты $c_n=a_n+b_n$ описывают общее количество всех (и связных, и не связных) графов, построенных на $n$-множестве $U_n$.
\end{examp}

\mysubitem Аналогичный комбинаторный смысл имеет операция сложения пары производящих функций (обыкновенных или экспоненциальных) и в общем случае. Именно, пусть у нас имеется пара \emph{непересекающихся} множеств $X$ и $Y$ каких-то дискретных структур. Пусть, далее, каждому из этих множеств поставлена в соответствие некоторая производящая функция. Тогда сумма этих функций описывает множество $Z$, представляющее собой объединение множеств $X$ и $Y$, а коэффициенты $c_n=a_n+b_n$ этой суммы подсчитывают общее количество дискретных структур (т.е. структур, принадлежащих как множеству $X$, так и множеству $Y$), которых мы можем построить на некотором $n$-элементном множестве $U_n$.

\myitem Несколько более нетривиальна комбинаторная интерпретация произведения пары производящих функций. Начнем с объяснения комбинаторного смысла произведения пары экспоненциальных производящих функций
$$
F(z)=a_0+a_1\dfrac{z}{1!}+a_2\dfrac{z^2}{2!}+\ldots\qquad \text{и}
\qquad G(z)=b_0+b_1\dfrac{z}{1!}+b_2\dfrac{z^2}{2!}+\ldots.
$$

\mysubitem Напомним, что произведением этих функций называется формальный степенной ряд $H(z)\in\C[[z]]$ вида
\begin{equation}
\label{eq:Prod_exp_gen_func}
H(z)=F(z)\cdot G(z)=c_0+c_1\dfrac{z}{1!}+c_2\dfrac{z^2}{2!}+\ldots,\qquad \text{где}\qquad
c_n=\sum\limits_{i=0}^n\BCf{n}{i}a_ib_{n-i}.
\end{equation}

Комбинаторный смысл этой операции следующий. Пусть $a_n$ --- это количество способов совершить какое-то комбинаторное действие или построить какую-либо дискретную структуру на $n$-элементном множестве $U_n$, $b_n$ --- это количество способов совершить еще какое-то комбинаторное действие или построить еще какую-либо дискретную структуру на том же самом $n$-множестве $U_n$. Тогда $c_n$ есть количество способов совершить следующие комбинаторные действия: разбить всеми возможными способами $n$-множество $U_n$ на два упорядоченных, возможно пустых, блока мощностью $i$ и $(n-i)$ соответственно, совершить над $i$ элементами первого блока первое комбинаторное действие $a_i$ способами, а затем совершить над оставшимися $(n-i)$ элементами второго блока второе комбинаторное действие $b_{n-i}$ способами.

Действительно, для любого фиксированного $i=0,1,\ldots,n$ мы можем $\BCf{n}{i}$ способами выбрать элементы первого блока; оставшиеся $(n-i)$ элементов второго блока выбираются при этом однозначно. Пусть для какого-то фиксированного разбиения мы $a_i$ способами совершаем первое комбинаторное действие над элементами первого блока, и $b_{n-i}$ способами совершаем второе комбинаторное действие над элементами второго блока. Тогда, согласно правилу произведения, для данного разбиения имеется $a_ib_{n-i}$ способов совершить оба этих действия. Меняя теперь $i$ в диапазоне от нуля до $n$, мы и получаем, что общее количество способов совершить описанные выше
действия равно
$$
c_n=\sum\limits_{k=0}^n\BCf{n}{i}a_ib_{n-i}.
$$

\mysubitem Рассмотрим несколько типичных примеров использования комбинаторного смысла произведения экспоненециальных производящих функций.

\begin{examp} \label{examp:n_stud_aud}
Пусть у нас в аудитории имеется $n$ студентов. Предположим, что нам нужно как-то разбить это множество студентов на две подгруппы, одну из них оставить в этой аудитории слушать лекцию, а вторую отправить в соседнюю аудиторию решать задачи. При этом во второй подгруппе нам нужно выбрать одного из студентов сходить за ключом от той аудитории, в которой подгруппа будет заниматься. Спрашивается, сколько существует возможных способов совершить эти действия.
\end{examp}

\decis Построим решение этой задачи с помощью производящих функций. Над студентами первой подгруппы мы никаких дополнительных действий не совершаем, поэтому $a_n=1$. Во второй подгруппе нам нужно выбрать одного студента, который пойдет за ключом. Это можно сделать $b_n=n$ способами. Поэтому
$$
F(z)=1+\dfrac{z}{1!}+\dfrac{z^2}{2!}+\ldots=e^z, \qquad
G(z)=0+1\cdot\dfrac{z}{1!}+2\cdot\dfrac{z^2}{2!}+\ldots=z\cdot e^z.
$$
Следовательно,
$$
H(z)=F(z)\cdot G(z)=z\cdot e^{2z}=z+2\dfrac{z^2}{1!}+2^2\dfrac{z^3}{2!}+\ldots\qquad \Longrightarrow
\qquad c_n=n\cdot 2^{n-1}, \quad n=1,2,\ldots
$$


\begin{examp} Рассмотрим множество $S$ всех перестановок. Известно, что количество $c_n$ перестановок $n$-элементного множества $U_n=[n]$ чисел $\{1,2,\ldots,n\}$ равно $n!$. Следовательно, экспоненциальная производящая функция для множества $S$ имеет вид
$$
S(z)=1+1!\dfrac{z}{1!}+2!\dfrac{z^2}{2!}+\ldots=1+z+z^2+\ldots=\dfrac{1}{1-z}.
$$
Пусть $\sigma_n$ есть некоторая произвольная перестановка элементов множества $[n]$. В этой перестановке $i$ чисел, $i=0,1,\ldots,n$, остаются неподвижными, а остальные $(n-i)$ элементов меняют свое положение. Пусть $D_n$ есть количество перестановок рассматриваемого множества $[n]$, в которых все элементы меняют свое положение, $a_n$ --- количество перестановок, при котором все элементы остаются на месте. Очевидно, что $a_n=1$ для любого $n$. Постараемся найти явное выражение для чисел $D_n$.
\end{examp}

\decis Введем для этого экспоненциальные производящие функции
$$
E(z)=1+1\dfrac{z}{1!}+1\dfrac{z^2}{2!}+\ldots=e^z\qquad \text{и} \qquad
D(z)=D_0+D_1\dfrac{z}{1!}+D_2\dfrac{z^2}{2!}+\ldots,
$$
отвечающие числовым последовательностям $a_n=1$ и $D_n$. В соответствии с комбинаторным смыслом произведения таких функций имеем
$$
S(z)=E(z)\cdot D(z)\qquad \Longleftrightarrow\qquad \dfrac{1}{1-z}=e^z\cdot D(z).
$$
Следовательно,
$$
D(z)=\dfrac{e^{-z}}{1-z},
$$
откуда сразу же получается явное выражение для чисел $d_n$:
\begin{equation}
\label{eq:derangements_dir}
D_n=\sum\limits_{i=0}^n(-1)^i\BCf{n}{i} (n-i)!
=n!\left(1-\dfrac{1}{1!}+\dfrac{1}{2!}-\ldots +(-1)^n\dfrac{1}{n!}\right).
\end{equation}


\mysubitem Задача определения чисел $D_n$ в элементарной комбинаторике известна как задача о беспорядках. Она достаточно часто встречается в различных школьных олимпиадных задачах по математике в самых разнообразных формулировках. Одна из возможных ее переформулировок такова. Преподаватель проводит тестирование $n$ студентов, а затем просит студентов обменяться ответами и проверить эти тесты так, чтобы никто не проверял свою собственную работу. В этом случае $D_n$ есть количество возможных способов совершить эти действия.

Исторически впервые эти числа появились в 1708 году в работах французского математика Пьера Монмора. Монмор рассматривал две колоды карт, по $n$ штук карт в каждой колоде, и поставил задачу о подсчете раскладок карт во второй колоде, при которых они бы не повторялись с картами первой колоды при смещении обеих колод на любое, но одинаковое количество карт (так называемая задача о смещениях --- displasements problem).

Свойства чисел $D_n$ напоминают свойства обычного факториала. Так, например, числа $D_n$ удовлетворяют следующему рекуррентному соотношению:
\begin{equation}
\label{eq:derangements_req}
D_{n+1}=n\left(D_n+D_{n-1}\right)\quad \forall\,\,n>1;\qquad\qquad D_0=1,\quad D_1=0.
\end{equation}
Это же рекуррентное соотношение, но с другими начальными условиями, выполняется и для обычных факториалов:
$$
(n+1)!=n(n!+(n-1)!),\quad \forall\,\,n>1;\qquad\qquad 0!=1,\quad 1!=1.
$$
Дональд Кнут \cite{Grah_Knut_Pat} в этой связи предложил называть эти числа субфакториалами и ввел для них обозначение
$D_n\equiv !n$.


\mysubitem В дальнейшем нам, наряду с произведением пары экспоненциальных производящих функций, понадобятся как формулы, так и комбинаторный смысл произведения нескольких $(k\geq 2)$ таких функций.

\begin{defin} Произведением $k$ экспоненциальных производящих функций
$$
h_m(z)=a_{m,0}+a_{m,1}\dfrac{z^1}{1!}+a_{m,2}\dfrac{z^2}{2!}+\ldots,\qquad m=1,2,\ldots,k
$$
называется формальный степенной ряд вида
$$
H(z)=h_1(z)\cdot h_2(z)\cdot \ldots\cdot h_k(z)=c_0+c_1\dfrac{z^1}{1!}+c_2\dfrac{z^2}{2!}+\ldots,
$$
в котором коэффициенты $c_n$ вычисляются по формулам
$$
c_n=\sum\limits_{\substack{i_1+\ldots+i_k=n,\\0\leq i_m\leq n}}
\BCf{n}{i_1}\BCf{n-i_1}{i_2}\ldots\BCf{n-i_1-i_2-\ldots-i_{k-1}}{i_k}a_{1,i_1}a_{2,i_2}\ldots a_{k,i_k}=
$$
$$
=\sum\limits_{\substack{i_1+\ldots+i_k=n,\\0\leq i_m\leq n}}
\dfrac{n!}{i_1!i_2!\ldots i_k!}a_{1,i_1}a_{2,i_2}\ldots a_{k,i_k}.
$$
\end{defin}

Комбинаторный смысл этого действия достаточно очевиден. Мы берем $n$-элементное множество, разбиваем его на $k$ упорядоченных, возможно пустых, блоков, и над элементами $m$-го блока, $m\in\{1,\ldots,k\}$ совершаем $m$-е комбинаторное действие $a_{i_m}$ числом способов. Общее количество способов совершить все эти операции и равно $c_n$.


\myitem Перейдем теперь к комбинаторной интерпретации произведения обыкновенных производящих функций. Напомним, что произведением пары таких функций
$$
f(z)=a_0+a_1z+a_2z^2+\ldots+a_nz^n+\ldots,
$$
$$
g(z)=b_0+b_1z+b_2z^2+\ldots+b_nz^n+\ldots.
$$
называется формальный степенной ряд вида
\begin{equation}
\label{eq:Prod_ord_gen_func}
h(z)=c_0+c_1z+c_2z^2+\ldots+c_nz^n+\ldots,\qquad \text{где}\qquad c_n=\sum_{i=0}^na_ib_{n-i}.
\end{equation}
В случае $k$ таких функций
$$
f_m(z)=a_{m,0}+a_{m,1}z+a_{m,2}z^2+\ldots,\qquad m=1,2,\ldots,k
$$
их произведением является функция
$$
h(x)=c_0+c_1x+c_2x^2+\ldots+c_nx^n+\ldots,
$$
коэффициенты $c_n$ в которой рассчитываются по формуле
$$
c_n=\sum\limits_{\substack{i_1+\ldots+i_k=n,\\0\leq i_m\leq n}} a_{1,i_1}a_{2,i_2}\ldots a_{k,i_k}.
$$

\mysubitem Наиболее часто встречающейся на практике комбинаторной интерпретацией такого рода операции является формулировка, связанная с комбинаторными действиями над неразличимыми предметами. Именно, пусть имеется $n$ неразличимых предметов, и пусть $a_n$ и $b_n$ есть количество способов совершить над этими предметами какие-то комбинаторные действия. Тогда $c_n$ перечисляет все возможные способы разбиения совокупности $n$ неразличимых предметов на два различимых, возможно пустых, блока, совершения над $i$ элементами, попавшими в первый блок, первого комбинаторного действия $(a_i$ способами), а над элементами, попавшими во второй блок, второго комбинаторного действия $(b_{n-i}$ способами). Обобщение этой интерпретации на случай произведения $k$ обыкновенных производящих функций очевидно.

\begin{examp} Самой простой, но в то же время важной задачей, связанной с такого рода интерпретацией произведения обыкновенных производящих функций, является задача о раскладке $n$ неразличимых предметов по $k$ различимым ящикам. В качестве основной производящей функции в этой задаче выступает обыкновенная производящая функция
$$
f(z)=a_0+a_1z+a_2z^2+\ldots+a_nz^n+\ldots,
$$
коэффициенты $a_n$ которой имеют следующий комбинаторный смысл: $a_n=1$, если нам разрешено положить $n$ предметов в выбранный ящик, и $a_n=0$ в случае, если нам это делать запрещено. Например, производящая функция вида
$$
f_{\leq 1}(z)=1+z
$$
означает, что в выбранный ящик я могу либо ничего не положить $(a_0=1)$, либо положить ровно один из $n$ неразличимых предметов $(a_1=1)$. Равенство нулю коэффициентов $a_n$, $n>1$ означает, что в ящике запрещается размещать два и более предметов. Производящая функция вида
$$
f_{\geq 1}(z)=z+z^2+\ldots+z^n+\ldots
$$
отвечает ситуации, когда в ящик я обязан положить хотя бы один предмет. Наконец, функция
$$
f(z)=1+z+z^2+\ldots+z^n+\ldots
$$
описывает ситуацию, при которой всякие ограничения на количество шаров в ящике отсутствуют.


Тогда, например, в соответствии с комбинаторным смыслом произведения $k$ обыкновенных производящих функций, коэффициенты $c_n$ обыкновенной производящей функции, отвечающей произведению $k$ функций $f_{\leq 1}(z)$, дают нам количество способов раскладки $n$ неразличимых предметов по $k$ различимым ящикам при условии, что ни в один из этих ящиков я не могу положить более одного предмета. Эти коэффициенты определяются из формулы
$$
h(z)=f_{\leq 1}^k(z)=(1+z)^k=\sum\limits_{n=0}^k\BCf{k}{n}z^n\qquad \Longrightarrow \qquad
c_n=\BCf{k}{n}.
$$
В случае отсутствия ограничений на количество предметов в одном ящике аналогичные рассуждения дают производящую функцию
$$
h(z)=f^k(z)=(1+z+z^2+\ldots)^k=\dfrac{1}{(1-z)^k}=\sum\limits_{n=0}^{+\infty}\BCCf{k}{n}z^n
\qquad \Longrightarrow \qquad
c_n=\BCCf{k}{n}.
$$
Наконец, в случае, когда в каждый ящик нам необходимо положить хотя бы один предмет, имеем
$$
h(z)=f_{\geq 1}^k(z)=(z+z^2+\ldots)^k=\dfrac{z^k}{(1-z)^k}=\sum\limits_{n=0}^{+\infty}\BCCf{k}{n}z^{n+k}
\quad \Longrightarrow \quad
c_n=\BCCf{k}{n-k}=\BCf{n-1}{k-1}.
$$
\end{examp}

\mysubitem Мы продемонстрировали, как с помощью описанного выше подхода решаются три основные наши задачи о раскладке $n$ неразличимых предметов по $k$ различимым ящикам. Однако, пользуясь этим подходом, мы довольно просто можем решать и множество других, самых разнообразных задач того же рода.

\begin{examp} Решим задачу раскладки $n$ неразличимых предметов по трем ящикам при условии, что в первый ящик мы можем положить ровно один предмет, во второй --- не более одного предмета, а в третий --- два, четыре или пять предметов. Это означает, что
$$
f_1(z)=z,\qquad f_2(z)=1+z,\qquad f_3(z)=z^2+z^4+z^5,
$$
а для определения общего количества способа раскладки $n$ неразличимых предметов по этим ящикам нам необходимо вычислить произведение
$$
h(z)=f_1(z)\cdot f_2(z)\cdot f_3(z)=z(1+z)(z^2+z^4+z^5)=z^3+z^4+z^5+2z^6+z^7.
$$
Отсюда, в частности, следует, что семь предметов в эти ящики мы можем разложить лишь одним способом.
\end{examp}

\mysubitem Заметим сразу же, что использование экспоненциальной производящей функции
$$
F(z)=a_0+a_1\dfrac{z}{1!}+a_2\dfrac{z^2}{2!}+\ldots+a_n\dfrac{z^n}{n!}+\ldots,
$$
коэффициенты которой имеют тот же комбинаторный смысл, что и у функции $f(z)$ предыдущего пункта, позволяет столь же эффективно решать аналогичные задачи о раскладке $n$ \emph{различимых} предметов по $k$ различимым ящикам. Рассмотрим, к примеру, производящую функцию
$$
F_{\leq 1}(z)=1+\dfrac{z}{1!}=1+z.
$$
Она описывает ситуацию, когда в один ящик я могу положить не более одного предмета. Тогда количество способов раскладки $n$ различимых предметов по $k$ различимым же ящикам при наличии такого ограничения на количество предметов в ящике определяется как коэффициент $c_n$ при $z^n/n!$ в разложении функции $H(z)=[F_{\leq 1}(z)]^k$:
$$
H(z)=[F_{\leq 1}(z)]^k=(1+z)^k=1+k\dfrac{z}{1!}+k(k-1)\dfrac{z^2}{2!}+\ldots+
k(k-1)\ldots(k-n+1)\dfrac{z^n}{n!}+\ldots+z^k=
$$
$$
=\sum\limits_{n=0}^k(k)_n\dfrac{z^n}{n!}\qquad \Longrightarrow \qquad c_n=(k)_n=k(k-1)\ldots(k-n+1).
$$
Использование производящей функции вида
$$
F(z)=1+\dfrac{z}{1!}+\dfrac{z^2}{2!}+\ldots+\dfrac{z^n}{n!}+\ldots=e^z
$$
позволяет легко решить задачу о количестве способов раскладки $n$ различимых предметов по $k$ различимым ящикам при отсутствии ограничений на количество предметов в каждом ящике: возводя эту функцию в $k$-ю степень, имеем
$$
H(z)=[F(z)]^k=e^{kz}=\sum\limits_{n=0}^{+\infty}k^n\dfrac{z^n}{n!}
\qquad \Longrightarrow \qquad c_n=k^n.
$$
Наконец, ситуации, когда в данный ящик мы можем положить один или более различимых предметов, отвечает производящая функция вида
$$
F_{\geq 1}(z)=\dfrac{z}{1!}+\dfrac{z^2}{2!}+\ldots+\dfrac{z^n}{n!}+\ldots=e^z-1.
$$
Для того, чтобы решить с ее помощью задачу о раскладке $n$ различимых предметов по $k$ различимым ящикам при условии, что в любом ящике должен находиться хотя бы один предмет, нужно возвести $F_{\geq 1}(z)$ в $k$-ю степень и воспользоваться биномом Ньютона для вычисления коэффициентов при $z^n$:
$$
H(z)=[F_{\geq 1}(z)]^k=(e^z-1)^k=\sum\limits_{i=0}^k(-1)^i\BCf{k}{i}e^{(k-i)z}.
$$
Учитывая, что
$$
e^{(k-i)z}=1+(k-i)\dfrac{z}{1!}+(k-i)^2\dfrac{z^2}{2!}+\ldots=\sum\limits_{n=0}^{+\infty}
(k-i)^n\dfrac{z^n}{n!},
$$
окончательно получаем
$$
H(z)=\sum\limits_{i=0}^k(-1)^i\BCf{k}{i}\sum\limits_{n=0}^{+\infty}(k-i)^n\dfrac{z^n}{n!}=
\sum\limits_{n=0}^{+\infty}\dfrac{z^n}{n!}\Bigl[\sum\limits_{i=0}^k(-1)^i\BCf{k}{i}(k-i)^n\Bigr]=
\sum\limits_{n=0}^{+\infty}\hat{S}(n,k)\dfrac{z^n}{n!}\qquad \Longrightarrow
$$
$$
\Longrightarrow\qquad \hat{S}(n,k)=\sum\limits_{i=0}^k(-1)^i\BCf{k}{i}(k-i)^n.
$$

Более того, мы теперь, как и в случае раскладки неразличимых предметов, можем решать с помощью описанной выше техники и довольно сложные задачи смешанного типа.

\begin{examp} \label{examp:layout_box_4}
Определить количество способов раскладки $n$ различимых предметов по четырем ящикам при условии, что во второй ящик разрешается класть только четное, а в четвертый --- только нечетное число предметов.
\end{examp}

\decis В этом случае
$$
F_1(z)=F_3(z)=1+\dfrac{z}{1!}+\dfrac{z^2}{2!}+\ldots+\dfrac{z^n}{n!}+\ldots=e^z,
$$
$$
F_2(z)=1+\dfrac{z^2}{2!}+\dfrac{z^4}{4!}+\ldots+\dfrac{z^{2n}}{(2n)!}+\ldots=\dfrac{e^z+e^{-z}}{2},
$$
$$
F_4(z)=\dfrac{z}{1!}+\dfrac{z^3}{3!}+\ldots+\dfrac{z^{2n+1}}{(2n+1)!}+\ldots=\dfrac{e^z-e^{-z}}{2},
$$
поэтому
$$
H(z)=e^{2z}\dfrac{e^z+e^{-z}}{2}\dfrac{e^z-e^{-z}}{2}=\dfrac{1}{4}\left(e^{4z}-1\right)=
\sum\limits_{n=1}^{+\infty}4^{n-1}\dfrac{z^n}{n!}\qquad \Longrightarrow\qquad
c_n=4^{n-1},\quad n=1,2,\ldots
$$


\mysubitem Вернемся к комбинаторному смыслу произведения обыкновенных производящих функций. Существует еще одна полезная комбинаторная интерпретация произведения таких функций, связанная с \emph{линейно упорядоченными} множествами различимых элементов \cite{Bona}. Именно, пусть $X$ есть $n$-элементное  упорядоченное множество (дни в календаре, люди в очереди, солдаты в строю). В этом случае разбить его на два упорядоченных блока, один из которых состоит из первых $i$ элементов $X$, а второй --- из оставшихся $(n-i)$ элементов можно, как и в случае неразличимых элементов, лишь одним способом. Если теперь над элементами первого блока совершить комбинаторное действие $a_i$ способами, а над элементами второго --- комбинаторное действие $b_{n-i}$ способами, то при заданном разбиении $X$ получим, по правилу произведения, $a_ib_{n-i}$ способов совершить эти действия одновременно. Следовательно, количество $c_n$ способов разбить линейно упорядоченное $n$-элементное множество на два непересекающихся подмножества, совершить действие $1$ на первом из них и действие $2$ на втором из них, рассчитывается по формуле (\ref{eq:Prod_ord_gen_func}), т.е. определяется как коэффициент при $z^n$ в разложении обыкновенной производящей функции $h(z)$, являющейся произведением пары функций $f(z)$ и $g(z)$, в формальный степенной ряд $h(z)\in\C[[z]]$.

\begin{examp} \label{examp:teach_work}
В осеннем семестре у преподавателя $n$ рабочих дней, и он хочет поделить его на две части. Первую часть (первые $i$ дней) он хочет посвятить теории, а вторую часть (последние $n-i$ дней) --- практике. В первой части преподаватель может выбрать один рабочий день для того, чтобы съездить в командировку. Во второй части он может взять два дня отгула. Сколькими способами преподаватель может спланировать свой осенний семестр?
\end{examp}

\decis Количество способов выбора одного элемента из $n$-элементного множества равно
$$
a_n={n\choose 1}=n,
$$
а количество способов выбора двух элементов равно
$$
b_n={n\choose 2}=\dfrac{n(n-1)}{2}.
$$
Следовательно, при фиксированном $i$ у преподавателя имеется
$$
a_ib_{n-i}=i\,\dfrac{(n-i)(n-i-1)}{2}
$$
способов выбрать один день на командировку в первой части семестра и два дня отгула во второй части семестра. Таким образом, всего преподаватель может
$$
c_n=\sum_{i=0}^{n}a_ib_{n-i}=\sum_{i=0}^{n}i\,\dfrac{(n-i)(n-i-1)}{2}
$$
способами организовать свою работу в осеннем семестре.

Для нахождения более компактной формы записи этого решения введем для числовых последовательностей $\{a_n\}$ и $\{b_n\}$ обыкновенные производящие функции
$$
f(z)=\sum_{n=0}^{+\infty}n\,z^n\qquad \mbox{и} \qquad g(z)=\sum_{n=0}^{+\infty}\dfrac{n(n-1)}{2}\,z^n.
$$
Заметим, что
$$
f(z)=\sum_{n=0}^{+\infty}n\,z^n=z\cdot\sum_{n=0}^{+\infty}nz^{n-1}=
z\left(\sum_{n=0}^{+\infty}z^{n}\right)'=
z\left(\dfrac{1}{1-z}\right)'
=z\cdot\dfrac{1}{(1-z)^2}=\dfrac{z}{(1-z)^2}.
$$
Далее,
$$
g(z)=\sum_{n=0}^{+\infty}\dfrac{n(n-1)}{2}\,z^n=\dfrac{z^2}{2}\cdot\sum_{n=0}^{+\infty}n(n-1)z^{n-2}
=\dfrac{z^2}{2}\left(\dfrac{1}{1-z}\right)''=\dfrac{z^2}{2}\cdot\dfrac{2}{(1-z)^3}=\dfrac{z^2}{(1-z)^3}.
$$
Следовательно,
$$
h(z)=f(z)\cdot g(z)=\dfrac{z^3}{(1-z)^5}=z^3\cdot\sum_{n=0}^{+\infty}{n+4\choose 4}z^{n}=
\sum_{n=0}^{+\infty}{n+4\choose 4}z^{n+3}=\sum_{k=3}^{+\infty}{k+1\choose 4}z^{k},
$$
откуда следует, что
$$
c_n={n+1\choose 4},\qquad n=3,4,\ldots
$$



\myitem Заметим, что до этого момента стандартный способ решения комбинаторных задач состоял у нас в следующем: мы, используя базовые комбинаторные принципы (правило сложения, умножения, а также их обобщения) получали рекуррентные соотношения для искомых чисел, а затем, используя производящие функции как элементы формальных степенных рядов, эти соотношения решали. Теперь же мы, зная комбинаторный смысл основных операций над производящими функциями, можем сразу строить решение задачи в терминах производящих функций.

\mysubitem В качестве характерного примера вернемся к задачам, связанным с числами $C_n$ Каталана. Пусть, как и прежде,
$$
f(z)=C_0+C_1z+C_2z^2+\ldots
$$
есть обыкновенная производящая функция для последовательности $\{C_n\}$ чисел Каталана, описывающих решение этой задачи. В первой главе было показано, что эта функция удовлетворяет следующему уравнению:
\begin{equation}
\label{eq:Cat_eq_od_gen_f}
f(z)=1+zf^2(z).
\end{equation}

Оказывается, это уравнение легко интерпретируется (а следовательно, и получается) с использованием комбинаторного смысла сложения и умножения обыкновенных производящих функций. Покажем, как это делается, на примере задачи о перечислении путей Дика на плоскости (рис. \ref{fig:dyck_path_2}).


\begin{figure}[h]
\centering
  \includegraphics[scale=0.6]{pics/dyck_path.eps}
\caption{Путь Дика}
\label{fig:dyck_path_2}
\end{figure}


\mysubitem Рассмотрим для этого линейно упорядоченное множество $X=(0,2,4,\ldots,2n)$ точек с четными координатами на оси абсцисс. Разобъем множество всех путей Дика на два непересекающихся подмножества --- подмножество, состоящее из тривиального пути Дика, а именно, единственной точки $x=0$ на плоскости, и подмножество, содержащее все остальные, нетривиальные пути. Тогда первому слагаемому отвечает слагаемое, равное единице в правой части (\ref{eq:Cat_eq_od_gen_f}). Осталось объяснить второе слагаемое в правой части (\ref{eq:Cat_eq_od_gen_f}), а именно, произведение трех производящих функций $g(z)=z$, $f(z)$ и $f(z)$.

Для его комбинаторной интерпретации заметим, прежде всего, что для любого нетривиального пути Дика существует точка $x_*=2i$ на оси абсцисс (одна из оставшихся $n$ точек множества $X$ с координатами $x>0$), в которой этот путь \emph{впервые} пересекает ось абсцисс. При этом, в силу линейной упорядоченности множества $X$, эта точка определяется \emph{однозначно}. Комбинаторному действию, состоящему в однозначном выборе этой единственной точки $x_*$из $n$-элементного линейно упорядоченного множества $X\setminus\{0\}$, на языке производящих функций отвечает функция $g(z)$ вида
$$
g(z)=0+1\cdot z+0\cdot z^2+\ldots
$$
Оставшееся множество точек с положительными координатами на оси абсцисс разбивается выбором точки $x_*$ на два \emph{упорядоченных} блока. Левому блоку отвечает участок пути Дика, нигде не пересекающий ось абсцисс. Такому участку однозначно отвечает \emph{произвольный} путь Дика, построенный на линейно упорядоченном множестве $Y$, состоящем из $(i-1)$-й точки с координатами $(1,1), (3,1),\ldots,(i-1,1)$. Число таких путей описывается функцией $f(z)$. Аналогично, правому блоку отвечает участок пути Дика, построенный на множестве точек $(2i,0),\ldots,(2n,0)$. И опять, этот участок можно интерпретировать как произвольный путь Дика, построенный на некотором подмножестве $\{0,2,\ldots,2(n-i)\}$ линейно упорядоченного множества $X$. Количество способов построить такие пути также описывается функцией $f(z)$.

Подводя итоги, равенство (\ref{eq:Cat_eq_od_gen_f}) можно комбинаторно интерпретировать следующим образом: произвольный путь Дика (левая часть равенства) представляет собой либо тривиальный путь Дика (единица в правой части (\ref{eq:Cat_eq_od_gen_f})), либо нетривиальный путь Дика. В последнем случае комбинаторное действие, описываемое слагаемым $zf^2(z)$, задает алгоритм построения такого пути. Именно, необходимо выбрать на оси абсцисс точку, в которой путь Дика впервые пересечет ось абсцисс, а затем построить слева от этой точки путь Дика, нигде не касающийся оси абсцисс, а справа от этой точки построить произвольный путь Дика.


\section*{Упражнения}

\begin{exerc} Дать прямое комбинаторное доказательство полученного в примере \ref{examp:n_stud_aud} результата, т.е. 
доказать комбинаторно, что количество способов совершить описанные в примере действия равно $n\,2^{n-1}$ для всех $n=1,2,\ldots$
\end{exerc}

\begin{exerc} Доказать формулу (\ref{eq:derangements_dir}) для чисел $D_n$ с использованием принципа включений-исключений.
\end{exerc}

\begin{exerc} Дать комбинаторное доказательство рекуррентного соотношения (\ref{eq:derangements_req}).
\end{exerc}

\begin{exerc} 
Доказать, что $D_n$ есть ближайшее к $n!\,e^{-1}$ целое число при $n\geq 1$.
\end{exerc}

\begin{exerc} 
Сосчитать количество чисел, состоящих из $n$ цифр, таких, что все цифры нечетные, а цифры $1$ и $3$ присутствуют в числе не менее одного раза.
\end{exerc}

\begin{exerc} 
Определить количество способов размещения $n$ гостей по трем различным столам при условии, что за первым столом должен сидеть хотя бы один гость, за вторым столом должно сидеть только нечетное, а за третьим --- четное число гостей.
\end{exerc}

\begin{exerc} 
Сколькими способами можно составить вес в $78$ грамм, пользуясь восемью гирьками в $1,$ $1,$ $2,$ $5,$ $10,$ $10,$ $20$и $50$ грамм? При этом считается, что гирьки одного веса различаются между собой (например, покрашены в разные цвета).
\end{exerc}

\begin{exerc} 
Хорошо известно, что любое число можно единственным образом записать в двоичной системе счисления. Дать комбинаторное доказательство данного факта на языке производящих функций.
\end{exerc}

\begin{exerc} 
Поступающий в университет должен сдать четыре различных экзамена. Сколько есть вариантов успешно сдать экзамены и поступить, если проходной балл равен семнадцати?
\end{exerc}

\begin{exerc} 
Сколькими способами можно получить сумму $n$ очков при $k$-кратном бросании игральной кости?
\end{exerc}

\begin{exerc} 
Описанную в предыдущем упражнении задачу можно обобщить следующим образом. Имеется мешок, в котором имеется $m$ жетонов, занумерованных числами от $0$ до $m-1$. Из мешка вытаскивают очередной жетон, записывают его номер, а затем возвращают жетон обратно в мешок. В результате получается последовательность из $k$ чисел. Требуется узнать, сколько из получающихся таким образом различных числовых последовательностей имеют сумму, равную $n$. Указанное количество обозначим через $\BCf{k,m}{n}$. Доказать, что эти числа рассчитываются по формуле
\begin{equation}
\label{eq:BCf_m}
\BCf{k,m}{n}=\sum\limits_{i\colon im\leq n}(-1)^i\BCf{k}{i}\BCf{k+n-im-1}{k-1}.
\end{equation}
\end{exerc}

\begin{exerc} 
Автобусный билет с шестизначным номером считался когда-то счастливым в случае, если сумма первых трех его цифр совпадала с суммой последних трех цифр. Подсчитать количество счастливых билетов.
\end{exerc}

\begin{exerc} 
Получить ответ из примера \ref{examp:layout_box_4} без использования производящих функций, используя прямые комбинаторные рассуждения.
\end{exerc}

\begin{exerc}  
Получить ответ из примера \ref{examp:teach_work} без использования производящих функций, используя прямые комбинаторные рассуждения.
\end{exerc}

\begin{exerc}  
Решить задачу из примера \ref{examp:teach_work} в случае, когда лекции и практики могут идти у преподавателя в произвольном порядке.
\end{exerc}

\begin{exerc}  
Семестровый курс состоит из $n$ занятий. Преподаватель хочет разделить курс на три последовательных части, и в каждой из них разбить занятия на лекции и практики, причём так, чтобы число практик было в первой части произвольное, во второй — нечётное, а в третьей — чётное. Сколько существует способов совершить эти действия? 
\end{exerc}

\begin{exerc} Записать аналогичное  (\ref{eq:Cat_eq_od_gen_f}) равенство для производящей функции, описывающей количество путей Моцкина, и дать его комбинаторную интерпретацию с использованием комбинаторного смысла сложения и умножения обыкновенных производящих функций.
\end{exerc}




\section*{Решение упражнений}

\begin{sol_exerc} 
Выполним те же самые комбинаторные действия, но в другой последовательности: вначале выберем студента, который пойдёт за ключом $(n$ способами), а затем для каждого из оставшихся $n-1$ студентов определим двумя способами, пойдёт ли он в соседнюю аудиторию. Теперь ответ легко получается из правила произведения.
\end{sol_exerc}

\begin{sol_exerc} 
Пусть $A_i$, $i \in [n]$ — перестановки из $S_n$, в которых $i$ является неподвижной точкой. Согласно принципу включения -- исключения, 
$$
D_n = |S_n| - \Bigl |\bigcup_{i}{A_i}\Bigr | = |S_n| - \sum_i |A_i| + \sum _{i<j} |A_i \cap A_j| - \sum _{i<j<k} |A_i \cap A_j \cap A_k| + \dots 
$$
Пересечение $m$ множеств из набора $\{A_i\}$ есть множество перестановок, в которых $m$ элементов являются неподвижными точками. Количество элементов в таком пересечении равно $(n-m)!$. Так как $m$ множеств из набора $\{A_i\}$ можно выбрать $\binom{n}{m}$ способами, получаем для $D_n$ формулу вида
$$
D_n = \sum_{i=0}^n \binom{n}{i} (n-i)! (-1)^i = n! \sum_{i=0}^n \frac{(-1)^i}{i!}
$$
\end{sol_exerc}

\begin{sol_exerc} 
Рассмотрим все перестановки множества $[n+1]$ без неподвижных точек. На первом месте в любой такой перестановке $\sigma$ может стоять любой элемент, отличный от единицы. Так как число таких элементов равно $n$, то все перестановки без неподвижных точек разбиваются на $n$ блоков в зависимости от того, какое из чисел встало при перестановке на первое место. 

Зафиксируем число $k$, попавшее в результате перестановки $\sigma$ на первое место. Предположим вначале, что на $k$-е место в этой перестановке попала единица. Ясно, что количество способов переставить оставшиеся числа так, чтобы ни одно из них не осталось на своем месте, равно $D_{n-1}$. Теперь предположим, что единица на $k$-е место не попала. Количество перестановок, в которых единица не попадает на $k$-е место, а числа, отличные от $1$ и $k$, не остаются на своих местах, равно количеству перестановок, при которых единица осталась на своем месте, а остальные числа свои места поменяли. Такое количество перестановок равно $D_n$. 
\end{sol_exerc}

\begin{sol_exerc} 
Рассмотрим модуль разности $n!/e$ и $D_n$:
$$
|n!/e-D_n| = {\biggl |}n!\sum_{i=0}^{\infty}\frac{(-1)^i}{i!} -n! \sum_{i=0}^{n}\frac{(-1)^i}{i!} {\biggr |} =  n!\, {\biggl |}\sum_{i=n+1}^{\infty}\frac{(-1)^i}{i!}{\biggr |}.
$$
Ряд под знаком модуля знакочередующийся, модули коэффициентов монотонно убывают. Значит, модуль суммы этого ряда строго меньше модуля первого члена, равного $1/(n+1)!$. Следовательно, 
$$
{\biggl |}\dfrac{n!}{e}-D_n{\biggr |}<  {\biggl |}n! \dfrac{1}{(n+1)!} {\biggr |} =  \dfrac{1}{n+1} \leq \dfrac {1}{2}.
$$
Это и есть условие, означающее, что $n!/e$ ближе к $D_n$, чем к любому другому целому числу.
\end{sol_exerc}

\begin{sol_exerc} 
На языке раскладки предметов по ящикам данная задача может быть переформулирована как задача о раскладке $n$ различимых предметов по пяти различимым ящикам при условии, что в первые два ящика следует положить хотя бы по одному предмету. Ответ к этой задаче можно получить, пользуясь комбинаторным смыслом произведения соответствующих экспоненциальных производящих функций:
$$
G(z)=(e^{z}-1)^2\cdot e^{3z}=e^{5z}-2e^{4z}+e^{3z}.
$$
Следовательно, количество $g_n$ описанных в упражнении чисел рассчитывается по формуле
$$
g_n=5^n-2\cdot 4^n+3^n.
$$
Заметим, что этот же ответ несложно было бы получить и с помощью принципа включения-исключения.
\end{sol_exerc}

\begin{sol_exerc} 
Согласно комбинаторному смыслу произведения экспоненциальных производящих функций, ответ на задачу определяется коэффициентом при $z^n/n!$ в производящей функции вида
$$
G(z)=F_1(z)\cdot F_2(z)\cdot F_3(z),\qquad \text{где}\qquad F_1(z)=\exp(z)-1,\qquad F_2(z)=\sh(z),\qquad F_3(z)=\ch(z).
$$
Так как
$$
G(z)=(e^z-1)\cdot\dfrac{e^{2z}-e^{-2z}}{4}=\dfrac{1}{4}\bigl(e^{3z}-e^{2z}-e^{-2z}-e^{-z}\bigr),
$$
то ответ на задачу дается формулой
$$
g_n=\dfrac{1}{4}\bigl(3^n-2^n+(-2)^n-(-1)^n\bigr).
$$
\end{sol_exerc}

\begin{sol_exerc}
Данная задача сводится к раскладке $78$ неразличимых предметов по восьми различимым ящикам при условии, что в первые два ящика можно класть не более одного предмета, в третий ящик --- ноль или два предмета, и так далее. На языке производящих функций это означает, что количество способов разложить $n$ предметов по таким ящикам совпадает с коэффициентом при $z^n$ у производящей функции
$$
f(z)=(1+z)^2(1+z^2)(1+z^5)(1+z^{10})^2(1+z^{20})(1+z^{50}).
$$
Можно убедиться, что коэффициент при $z^{78}$ у функции $f(z)$ равен четырем.
\end{sol_exerc}

\begin{sol_exerc} 
Количество способов записать число $n$ в двоичной системе счисления определяется коэффициентом при $z^n$ у производящей функции вида
$$
f(z)=(1+z)\cdot (1+z^2)\cdot(1+z^4)\cdot \ldots\cdot (1+z^{2^k}).
$$
Теперь заметим, что функция
$$
f(z)\cdot (1-z)=(1-z^2)\cdot (1+z^2)\cdot(1+z^4)\cdot \ldots=(1-z^4)\cdot (1+z^4)\cdot \ldots=\ldots=
(1-z^{2^{k+1}}),
$$
так что
$$
f(z)=\dfrac{1-z^{2^{k+1}}}{1-z}=1+z+z^2+\ldots+z^{2^{k+1}-1}.
$$
Это равенство и доказывает нам, что любое целое число в диапазоне от нуля до $2^{k+1}-1$ может быть единственным образом представлено в виде двоичного числа, состоящего из $k+1$ нулей и единиц.
\end{sol_exerc}

\begin{sol_exerc} 
Данную задачу можно рассматривать как задачу раскладки $n$ неразличимых предметов по четырем различимым ящикам при условии, что в каждый ящик можно класть только три, четыре или пять предметов. Производящая функция $f(z)$, описывающая такой способ раскладки, равна
$$
f(z)=(z^3+z^4+z^5)^4=z^{12}(1+z+z^2)^4=z^{12}\dfrac{(1-z^3)^4}{(1-z)^4}=
z^{12}(1-z^3)^4\sum\limits_{n=0}^{+\infty}\BCf{n+3}{n}z^n,
$$
а ответ получается сложением суммы $a_{17}+a_{18}+a_{19}+a_{20}$ коэффициентов при соответствующих степенях функции $f(z)$. Несложно проверить, что эта сумма равна $31$.
\end{sol_exerc}

\begin{sol_exerc} 
Ответ на данную задачу получается как коэффициент при $z^n$ у производящей функции $g(z)=f^k(z)$, где 
$$
f(z)=z+z^2+z^3+z^4+z^5+z^6=\dfrac{z(1-z^6)}{1-z}.
$$ 
\end{sol_exerc}

\begin{sol_exerc} 
В общем случае получаем, что
$$
g(z)=f^k(z),\qquad \text{где}\qquad f(z)=1+z+\ldots+z^{m-1}=\dfrac{1-z^m}{1-z}.
$$
Поэтому
$$
g(z)=\dfrac{(1-z^m)^k}{(1-z)^k}=\sum\limits_{i=0}^{k}(-1)^i\BCf{k}{i}z^{im}\sum\limits_{l=0}^{+\infty}\BCf{l+k-1}{k-1}z^l,
$$
откуда и следует равенство (\ref{eq:BCf_m}).
\end{sol_exerc}

\begin{sol_exerc} 
Для решения данной задачи достаточно заменить в счастливом билете последние три его цифры их дополнениями до девяти и заметить, что в таком случае у нас всегда получается билет, сумма цифр которого равна $27$. Следовательно, задача свелась к нахождению количества способов представить число $n=27$ в виде суммы шести цифр от $0$ до $9$. В свою очередь, это количество мы можем рассчитать по формуле (\ref{eq:BCf_m}):
$$
\BCf{6,10}{27}=\sum\limits_{i=0}^2 (-1)^i\BCf{6}{i}\BCf{32-10i}{5}=\BCf{32}{5}-\BCf{6}{1}\BCf{22}{5}+\BCf{6}{1}\BCf{12}{5}=55\,252.
$$
\end{sol_exerc}

\begin{sol_exerc} 
Будем думать, что шары раскладываются по ящикам в два этапа: вначале для каждого шара определяется чётность номера ящика, в который попадает шар, а уж потом конкретный ящик. Так как количество четных подмножеств множества $[n]$ равно количеству нечётных, то после первого этапа раскладки мы ровно в половине случаев получим неподходящую чётность количества шаров во втором и в четвёртом ящиках. Из оставшейся половины вариантов (при которых второй и четвёртый ящик получили в сумме нечётное количество шаров) нам опять же подходит только половина: те, в которых второй ящик получит чётное, а четвёртый — нечётное количество шаров. Таким образом, из $4^n$ вариантов раскладки нужным нам ограничениям удовлетворяет каждый четвертый, что и доказывает равенство.
\end{sol_exerc}



\begin{sol_exerc} 
Выбирая из множества $[n+1]$ четыре элемента, мы выбираем день командировки, день окончания лекций, а также первый и второй дни отгула. Выбрать эти четыре элемента можно $\BCf{n+1}{4}$ числом способов.
\end{sol_exerc}

\begin{sol_exerc} 
В данном случае вместо обыкновенных нужно использовать аналогичные экспоненциальные производящие функции
$$
F(z)=\sum_{n=0}^{+\infty}n\,\dfrac{z^n}{n!}=z\,e^z,
\qquad
G(z)=\sum_{n=0}^{+\infty}\dfrac{n(n-1)}{2}\,\dfrac{z^n}{n!}=\dfrac{z^2}{2}\,e^z.
$$
Коэффициенты при $z^n/n!$ произведения
$$
F(z)\cdot G(z)=\frac{z^3}{2}e^{2z} = \sum_{n=3}^\infty \frac{n\,(n-1)\,(n-2)\,2^{n-3}}{2} \frac{z^n}{n!}
$$
дают нам ответ на поставленную задачу.
\end{sol_exerc}

\begin{sol_exerc} 
Части идут последовательно, что соответствует комбинаторному смыслу умножения обыкновенных производящих функций. Запишем для каждой из них обыкновенные производящие функции:
$$
f_1(z)=\sum_{n=0}^\infty 2^nz^n=\frac{1}{1-2z}; \quad f_2(z)=\sum_{n=1}^\infty 2^{n-1}z^n = \frac{z}{1-2z}; \quad f_3(z)=f_1(z)-f_2(z) = \frac{1-z}{1-2z}.
$$
Перемножение этих функций дает 
$$
f_1(z)\cdot f_2(z)\cdot f_3(z)=\frac{z(1-3z)}{(1-2z)^3} = \frac{1}{4}\cdot\frac{1}{(1-2z)^3}-\frac{1}{4}\cdot\frac{1}{1-2z} =
\sum\limits_{n=0}^{+\infty}c_nz^n,
$$
$$
c_n =\dfrac{2^n}{4}\Bigl(\dfrac{(n+2)(n+1)}{2}-1\Bigr)=2^{n-3}\cdot n \cdot (n+3).
$$
\end{sol_exerc}

\begin{sol_exerc} Уравнение
\begin{equation}
\label{eq:Motzkin_eq_od_gen_f}
f(z)=1+z(f(z)+zf^2(z))
\end{equation}
можно интерпретировать следующим образом (рис.\ref{fig:motzkin}). Любой путь Моцкина представляет собой либо пустой путь Моцкина (единица в правой части (\ref{eq:Motzkin_eq_od_gen_f})), либо нетривиальный путь Моцкина. В последнем случае множитель $z$ означает однозначный выбор точки с абсциссой, равной единице. Если этой точке отвечает ордината, равная нулю (т.е. участок пути Моцкина, состоящий из отрезка $(1,0))$, то правее этой точки можно построить произвольный путь Моцкина, начинающийся в точке с координатами $(1,0)$ и заканчивающийся в точке с координатами $(n,0)$ (рис.\ref{fig:motzkin},a). Количество таких путей описывается функцией $f(z)$. Если же этой точке отвечает ордината, равная единице (т.е. участок пути Моцкина, состоящий из отрезка $(1,1))$, то правее этой точки можно однозначно выбрать точку, в которой путь Моцкина впервые пересекает ось абсцисс (точка с координатами $(4,0)$ на рис.\ref{fig:motzkin},b). Дальнейшие рассуждения повторяют интерпретацию правой части уравнения (\ref{eq:Cat_eq_od_gen_f}), описывающего числа Каталана.

\begin{figure}[h]
\centering
\begin{tabular}[t]{c}
	\begin{subfigure}[b]{0.8\textwidth}
	\centering
    		\includegraphics[scale=0.6]{pics/motzkin1.eps}
 	\caption{}
	\end{subfigure}
\\
\\
	\begin{subfigure}[b]{0.8\textwidth}
	\centering
    		\includegraphics[scale=0.6]{pics/motzkin2.eps}
 	\caption{}
	\end{subfigure}
\end{tabular}
\caption{Пути Моцкина}
\label{fig:motzkin}
\end{figure}

\end{sol_exerc}



\section{Задача о наклейке марок на бандероль в случае, когда порядок наклеиваемых марок важен. Понятие композиции обыкновенных производящих функций}

\myitem До этого момента мы рассматривали только две основные операции над производящими функциями ---  сложение и умножение таких функций. Наряду с этими операциями на практике не менее часто используется и еще одна важная и чрезвычайно полезная операция над производящими функциями, а именно, композиция производящих функций. Определение композиции обыкновенных производящих функций в общем случае дать достаточно сложно. Мы этим займемся только в конце этой главы. Однако один частный случай этой операции мы рассмотрим уже сейчас. Этот частный случай будет достаточно простым, с его помощью мы легко объясним основные принципы построения операции композиции производящих функций. Наконец, мы свяжем эту операцию с довольно интересным классом задач о раскладке неразличимых предметов по различимым ящикам в случае, когда количество $k$ ящиков заранее не фиксировано. 

\mysubitem Начнем с задачи, которую мы назовем задачей о наклейке марок на бандероль \cite{Vilenkin}.

\begin{examp} За пересылку бандероли нужно уплатить $18$ рублей, наклеивая на нее марки. На почте есть марки достоинством в $4$, $6$ и $10$ рублей в неограниченном количестве. Сколькими способами можно оплатить пересылку бандероли, если два способа, отличающиеся количеством и/или \emph{порядком} наклейки марок, считаются различимыми?
\end{examp}

Прежде всего, давайте вручную переберем все возможные способы наклейки марок:
$$
\begin{array}{llll}
6+6+6=18; &   & &\\
10+4+4=18; &  4+10+4=18; & 4+4+10=18; & \\
6+4+4+4=18;   \qquad &4+6+4+4=18;  \qquad  &4+4+6+4=18; &\qquad  4+4+4+6=18. \\
\end{array}
$$
Итого имеем $8$ различных способов. Наша задача --- получить это число алгоритмически, т.е. без ручного перебора всех вариантов.

\mysubitem Попытаемся составить для этой задачи рекуррентное соотношение. Пусть $h(n)$ есть количество способов, которыми можно наклеить марки достоинством в $4$, $6$ и $10$ рублей с учетом порядка их наклейки так, чтобы их общая стоимость равнялась $n$. Для подсчета $h(n)$ вновь воспользуемся стандартным приемом --- разобъем множество всех вариантов на блоки и подсчитаем количество элементов в каждом блоке.

Основное наблюдение здесь состоит в том, что в нашей задаче порядок наклейки марок важен. Поэтому мы можем разбить множество всех вариантов на три блока в зависимости от того, марка какого достоинства была наклеена на бандероль последней. При этом понятно, что количество способов наклеить марки так, чтобы последней шла марка достоинством в $i$ рублей, равно $h(n-i)$. Следовательно, для нашей задачи справедливо рекуррентное соотношение вида
$$
h(n)=h(n-4)+h(n-6)+h(n-10),
$$
которое нужно дополнить начальными условиями $h(0)=1$, $h(n)=0$ при $n<0$.

\mysubitem Решим теперь это рекуррентное соотношение с помощью производящих функций. Введем для числовой последовательности $h(n)\equiv h_n$ обыкновенную производящую функцию
$$
h(z)=h_0+h_1z+h_2z^2+\ldots
$$
Перепишем наше рекуррентное соотношение для удобства в следующем виде:
$$
h_{n+10}=h_{n+6}+h_{n+4}+h_n,\qquad n\geq 0,
$$
$$
h_0=1,\,\,h_1=h_2=h_3=0,\,\,h_0=1,\,\,h_5=1\,\,h_6=h_7=0,\,\,h_8=1,\,\,h_9=0.
$$
Домножая это соотношение на $z^{n+10}$ и суммируя по всем $n$, получаем равенство вида
$$
\sum\limits_{n=0}^{+\infty}h_{n+10}z^{n+10}=z^4\sum\limits_{n=0}^{+\infty}h_{n+6}z^{n+6}+
z^6\sum\limits_{n=0}^{+\infty}h_{n+4}z^{n+4}+z^{10}\sum\limits_{n=0}^{+\infty}h_{n}z^{n}
\qquad \Longleftrightarrow
$$
$$
\Longleftrightarrow\,\,
h(z)-h_0-\ldots -h_9z^9=z^4(f(z)-h_0-\ldots -h_5z^5)+z^6(f(z)-h_0-\ldots -h_3z^3)+z^{10}f(z)\,\,
\Longleftrightarrow
$$
$$
\Longleftrightarrow\,\,
h(z)-1-z^4-z^6-z^8=z^4(h(z)-1-z^4)+z^6(h(z)-1)+z^{10}h(z)\,\,
\Longleftrightarrow
$$
$$
h(z)[1-z^4-z^6-z^{10}]=1+z^4+z^6+z^8-z^4-z^8-z^6=1,
$$
из которого несложно получить явное выражение для искомой обыкновенной производящей функции:
$$
h(z)=\dfrac{1}{1-(z^4+z^6+z^{10})}=1+(z^4+z^6+z^{10})+(z^4+z^6+z^{10})^2+\ldots
$$

При этом ответ на поставленную задачу при фиксированной стоимости $n$ бандероли равен коэффициенту при $z^n$ в разложении этой функции $h(z)$ по степеням $z$:
$$
h(z)=1+z^4(1+z^2+z^6)+z^8(1+z^2+z^6)^2+z^{12}(1+z^2+z^6)^3+z^{16}(1+z^2+z^6)^4+\ldots=
$$
$$
=1+z^4+z^6+z^8+3z^{10}+2z^{12}+5z^{14}+6z^{16}+8z^{18}+13z^{20}\ldots
$$
Отсюда, в частности, следует, что при $n=18$ количество различных способов наклеить марки равно восьми.

\mysubitem Заметим теперь, что ответ на задачу, записанный в виде
$$
h(z)=1+(z^4+z^6+z^{10})+(z^4+z^6+z^{10})^2+\ldots+(z^4+z^6+z^{10})^k+\ldots
$$
имеет достаточно очевидную комбинаторную интерпретацию на языке обыкновенных производящих функций в духе рассуждений предыдущего параграфа. 

Именно, введем производящую функцию 
$$
f(z)=0+0\cdot z+0\cdot z^2+0\cdot z^3+1\cdot z^4+0\cdot z^5+1\cdot z^6+0\cdot z^7+0\cdot z^8+0\cdot z^9+1\cdot z^{10}
+0\cdot z^{11}+\ldots,
$$ 
коэффициенты $a_n$ которой описывают количество способов положить $n$ неразличимых предметов в один единственный ящик. То, что $a_n=0$ для всех $n\neq 4,6,10$ означает, что в данный ящик нам запрещено класть предметы, количество которых отлично от четырех, шести или десяти. 

Теперь переформулируем исходную задачу о наклейке марок в терминах раскладки неразличимых предметов по ящикам. На языке раскладки предметов по ящикам наклеить на $m$-е место марку достоинством в $i$ рублей означает поместить в $m$-й ящик $i$ неразличимых предметов (например, $i$ рублевых монет). Тогда при фиксированном числе $k$ наклеиваемых марок (или, что тоже самое, при фиксированном числе $k$ ящиков) количество способов наклеить марки общей стоимостью в $n$ рублей (или количество способов разложить $n$ неотличимых друг от друга рублевых монет по $k$ различимым ящикам) равно коэффициенту при $z^n$ у производящей функции вида
$$
h_k(z)=(z^4+z^6+z^{10})^k=[f(z)]^k.
$$

Однако в рассматриваемой задаче число $k$ может быть любым. На языке производящих функций это означает, что для подсчета общего количества способов раскладки $n$ неразличимых предметов \emph{по заранее не фиксированному} числу различимых ящиков мы должны просуммировать все такие функции $h_k(z)$  по всем возможным значениям $k$:
$$
h(z)=\sum\limits_{k=0}^{+\infty}h_k(z)=\sum\limits_{k=0}^{+\infty}[f(z)]^k=\dfrac{1}{1-f(z)}=\dfrac{1}{1-(z^4+z^6+z^{10})}.
$$ 
 

\mysubitem Приведенные выше рассуждения легко обобщаются на случай задачи о наклейке $s$ различных марок достоинством в $i_1\neq i_2\neq\ldots\neq i_s$ рублей каждая. Для этого введем производящую функцию
$$
f(z)=\sum\limits_{n=0}^{+\infty}a_nz^n,
$$
коэффициенты $a_n$ которой равны единице в случае, когда $n$ равно одному из чисел $i_1\neq i_2\neq\ldots\neq i_s$, и нулю во всех остальных случаях:
$$
f(z)=1\cdot z^{i_1}+1\cdot z^{i_2}+\ldots+1\cdot z^{i_s}.
$$ 
Тогда количество $h(n)$ различных вариантов наклейки $s$ марок с учетом их порядка на бандероль, стоимость отправки которой равна $n$, есть коэффициент при $z^n$ в разложении производящей функции
$$
h(z)=\dfrac{1}{1-(z^{i_1}+z^{i_2}+\ldots+z^{i_s})}=\dfrac{1}{1-f(z)}
$$
по степеням $z$.

В частности, в случае наличия на почте марок любого достоинства (т.е. марок стоимостью в один рубль, в два рубля и так далее) в неограниченном же количестве производящая функция 
$$
f(z)=z+z^2+z^3+\ldots=\dfrac{z}{1-z},
$$
а решение задачи описывается функцией
$$
h(z)=\dfrac{1}{1-f(z)}=\dfrac{1}{1-\dfrac{z}{1-z}}=\dfrac{1-z}{1-2z}=1+\dfrac{z}{1-2z}=
1+z+2z^2+4z^3+\ldots +2^{n-1}z^n+\ldots
$$
Следовательно, в этом случае количество $h(n)$ различных способов наклейки марок на бандероль, стоимость отправки которой равна $n$, есть $2^{n-1}$ при $n>0$ и $1$ при $n=0$. На языке раскладки $n$ неразличимых предметов по заранее не фиксированному количеству различимых ящиков это означает, что существует $2^{n-1}$ способов такой раскладки при условии, что в каждый из этих ящиков мы можем класть любое отличное от нуля количество предметов. 


\myitem Заметим, что с формальной точки зрения сформулированная в предыдущем пункте задача эквивалентна проблеме поиска всех решений в \emph{положительных} целых числах уравнения 
\begin{equation}
\label{eq:z_num}
x_1+x_2+\ldots+x_k=n,\qquad x_k\in\{i_1,\ldots,i_s\}\,\,\forall k
\end{equation}
при условии, что порядок слагаемых в левой части этого равенства важен, а количество $k$ этих слагаемых заранее не фиксировано. Возникает вопрос, а возможно ли получить решение такой задачи в \emph{неотрицательных} целых числах?

\mysubitem Попробуем действовать по аналогии. В случае неотрицательных целых чисел производящая функция $f(z)$ имеет вид
$$
f(z)=1+z+z^2+\ldots+z^n+\ldots=\dfrac{1}{1-z}.
$$
Формальное применение описанного в предыдущем пункте алгоритма приводит нас в этом случае к функции
$$
h(z)=\dfrac{1}{1-f(z)}=\dfrac{1}{1-\dfrac{1}{1-z}}=\dfrac{-1+z}{z},
$$
которая не имеет смысла с точки зрения описанной в первой главе теории формальных степенных рядов --- стоящая в знаменателе функция $g(z)=z$ не имеет обратного элемента по умножению в кольце $C[[z]]$.

В чем же причина нашей неудачи? Дело в том, что уравнение (\ref{eq:z_num}) имеет в \emph{неотрицательных}  целых числах бесконечное число решений. Действительно, мы можем бесконечным числом способов добавлять в левую часть этого уравнения бесконечное же число нулей. И результат сложения в правой части уравнения от этого, естественно, не изменится. Таким образом, комбинаторная задача в такой постановке смысла не имеет.

\mysubitem Осталось понять, как этот факт отражается на попытке решения задачи с использованием производящих функций. Рассмотрим для этого обыкновенную производящую функцию
$$
f(z)=a_0+a_1z+a_2z^2+\ldots
$$
\emph{По определению,} положим 
\begin{equation}
\label{eq:comp_od_gen_f}
h(z)=\dfrac{1}{1-f(z)}:=1+f(z)+[f(z)]^2+\ldots+[f(z)]^k+\ldots
\end{equation}
и посмотрим, когда это определение имеет смысл с точки зрения теории формальных степенных рядов. 

Предположим вначале, что $a_0=0$. В таком случае в правой части (\ref{eq:comp_od_gen_f}) всегда будет стоять конечное число слагаемых при степенях $z^n$, $n>0$. Действительно, 
$$
[f(z)]^k=(a_1z+a_2z^2+\ldots)^k=z^k(a_1+a_2z+a_3z^2+\ldots)^k.
$$
Поэтому при всех значениях $k>n$ любая производящая функция вида $[f(z)]^k$ будет содержать только степени $z$, большие $n$. Как следствие, для того, чтобы сосчитать коэффициент при $z^n$ у функции $h(z)$, достаточно ограничиться конечной суммой
$$
1+f(z)+[f(z)]^2+\ldots+[f(z)]^n.
$$

Пусть теперь $a_0\neq 0$. В этом случае \emph{любая} степень $[f(z)]^k$ будет содержать слагаемые с $z^n$. Иными словами, таких слагаемых теперь будет бесконечно много, и подсчет коэффициентов при $z^n$ становится невозможен. Таким образом, при $a_0\neq 0$ операция (\ref{eq:comp_od_gen_f}) с точки зрения теории формальных степенных рядов смысла не имеет.

\mysubitem Итак, мы подошли к следующему определению. Пусть 
$$
f(z)=a_0+a_1z+a_2z^2+\ldots+a_nz^n+\ldots
$$
есть обыкновенная производящая функция, коэффициент $a_0$ которой равен нулю. Тогда корректно определена обыкновенная производящая функция 
$$
h(z)=h_0+h_1z+h_2z^2+\ldots:=\dfrac{1}{1-f(z)}=1+f(z)+[f(z)]^2+\ldots+[f(z)]^k+\ldots,
$$
представляющая собой композицию $g(f(z))$ пары обыкновенных производящих функций $f(z)$ и $g(z)=1/(1-z)$. 

\mysubitem Комбинаторный смысл описанной выше операции состоит в следующем. Пусть имеется $n$ неразличимых предметов и пусть существует $a_n$ способов совершить над ними какое-то комбинаторное действие. Предположим также, что $a_0=0$, то есть любые комбинаторные действия в случае $n=0$ отсутствуют. Тогда $h_n$ есть количество способов распределить эти $n$ элементов по какому-то (заранее не фиксированному) числу $k$ линейно упорядоченных непустых блоков, а затем совершить в любом из таких блоков размером $i_m$ комбинаторное действие $a_{i_m}$ способами. 

\begin{rem}
Как и в случае произведения обыкновенных производящих функций, еще одна трактовка комбинаторного смысла композиции $g(f(z))=1/(1-f(z))$ связана с разбиением линейно упорядоченного множества на произвольное, заранее не фиксированное число непустых блоков, а затем с совершением в каждом из этих блоков комбинаторного действия, описываемого функцией $f(z)$.
\end{rem}


\section*{Упражнения}

\begin{exerc}
С помощью производящих функций мы показали, что существует $2^{n-1}$ способов раскладки $n$ неразличимых предметов по заранее не фиксированному количеству различимых ящиков при условии, что в каждый из этих ящиков мы можем класть любое отличное от нуля количество предметов. Дать комбинаторное доказательство этого факта. 
\end{exerc}

\begin{exerc}
Сколькими способами можно получить по различным предметам оценки $3$, $4$ и $5$ так, чтобы их сумма равнялась десяти? А если предметов ровно три?
\end{exerc}

\begin{exerc} 
Рота из $n$ солдат выстроена в шеренгу. Командир разбивает шеренгу в произвольном количестве мест, создавая тем самым несколько отрядов. После этого, часть отрядов он отправляет на дежурство. Сосчитать количество способов совершить такие комбинаторные действия с использованием производящих функций.
\end{exerc}

\begin{exerc} 
Придумать комбинаторное доказательство для результата, полученного при решении предыдущего упражнения. 
\end{exerc}

\begin{exerc} 
На плацу стоят в одну линию $n$ солдат. Дежурный офицер разбивает эту шеренгу на произвольное число $k$ непустых отрядов, а затем назначает в каждом отряде командира. Подсчитать с помощью производящих функций количество $h_n$ способов совершить эту операцию.
\end{exerc}




\section*{Решение упражнений}

\begin{sol_exerc}
Любое натуральное число $n$ можно рассматривать как сумму из $n$ единиц. Разбивая строку из $n$ единиц $(k-1)$-й перегородкой, $k\in[1,\ldots,n]$, мы получаем разбиение числа $n$ на некоторое количество $k$ различимых блоков. Так как между любыми двумя единицами мы можем либо поставить, либо не поставить перегородку, то общее количество таких разбиений равно $2^{n-1}$.  
\end{sol_exerc}

\begin{sol_exerc}
В данном случае $f(z)=z^3+z^4+z^5$, поэтому производящая функция, описывающая сумму оценок по всем предметам, равную $n$, равна
$$
h(z)=\dfrac{1}{1-z^3(1+z+z^2)}=1+z^3(1+z+z^2)+z^6(1+z+z^2)^2+z^9(1+z+z^2)^3+\ldots=
$$
$$
=1+z^3+z^4+z^5+z^6+2z^7+3z^8+3z^9+4z^{10}+\ldots.
$$
Следовательно, имеется $4$ способа получить сумму оценок, равную десяти.

В случае же, когда предметов ровно три, количество способов описывается коэффициентом при $z^{10}$ у производящей функции
$$
f^3(z)=z^9(1+z+z^2)^3=z^9+3z^{10}+\ldots
$$
\end{sol_exerc}

\begin{sol_exerc}
В соответствии с комбинаторным смыслом композиции обыкновенных производящих функций $1/(1-z)$ и $f(z)$, 
ответ на задачу описывается функцией $h(z)=1/(1-f(z))$, где $f(z)$ --- производящая функция вида
$$
f(z)=\sum\limits_{n=1}^\infty 2z^n=\dfrac{2z}{1-z}.
$$
Действительно, любой отряд мы можем либо отправить, либо не отправить на дежурство, поэтому существует два способа совершить данные действия для любого $n>0$. Соответственно, производящая функция 
$$
h(z)=\frac{1}{1-f(z)} = \frac{1}{1-2z/(1-z)} = \frac{1-z}{1-3z} = 1 + \sum\limits_{n =1}^\infty 2\cdot 3^{n-1}z^n.
$$
Как следствие, описанные в условии упражнения действия можно совершить $2\cdot 3^{n-1}$ способами для любого $n>0$.
\end{sol_exerc}

\begin{sol_exerc}
Первый стоящий в шеренге солдат либо начинает отряд, отправляющийся на дежурство, либо начинает отряд, на дежурство не отправляющийся. Каждый из оставшихся в шеренге $n-1$ солдат либо примыкает к отряду предыдущего солдата, либо начинает новый отряд, который отправится на дежурство, либо начинает новый отряд, который не отправляется на дежурство.
\end{sol_exerc}

\begin{sol_exerc}
Количество способов выбрать командира в отряде из $n$ человек равно, очевидно, $n$. Соответствующая этим числам производящая функция $f(z)$ записывается в виде
$$
f(z)=\sum\limits_{n=0}^{+\infty}n\,z^n=\dfrac{z}{(1-z)^2}.
$$
Ответ на упражнение получается как коэффициент при $z^n$ в производящей функции вида
$$
h(z)=\dfrac{1}{1-f(z)}=1+\dfrac{z}{1-3z+z^2}.
$$
\end{sol_exerc}


\section{Задача о наклейке марок на бандероль в случае, когда порядок наклеиваемых марок не важен. Разбиения чисел на слагаемые при отсутствии ограничений на количество слагаемых}

\myitem Вернемся к задаче о наклейке марок на бандероль. На практике нас, как правило, не интересует порядок наклейки марок --- обычно мы лишь хотим, чтобы стоимость наклеенных марок совпадала со стоимостью отправки бандероли. В такой постановке задача имеет всего три различных решения:
$$
18=6+6+6=4+4+10=4+4+4+6.
$$
В дальнейшем мы увидим, что решение подобного рода задач также связано с операцией композиции обыкновенных производящих функций. Однако сейчас мы покажем, как решить данную задачу непосредственно, на основе сведения ее к задаче о раскладке $n$ неразличимых предметов по \emph{фиксированному} числу $k$ различимых ящиков.

\mysubitem Следуя привычному нам подходу, попытаемся вначале построить рекуррентное соотношение, описывающее количество $\Phi(n;4,6,10)$  способов наклейки марок общей стоимостью $n$ рублей без учета порядка наклеиваемых марок. Для этого разобьем все множество способов наклейки на блоки в зависимости от того, использовалась ли хоть раз марка данного достоинства (например, марка достоинством в $10$ рублей) при наклейке марок на бандероль. В случае, если она использовалась, количество способов наклейки марок, очевидно, равно $\Phi(n-10;4,6,10)$. В случае же, когда она вовсе не использовалась, это количество равно $\Phi(n;4,6)$. Следовательно, для чисел $\Phi(n;4,6,10)$ справедливо рекуррентное соотношение вида
$$
\Phi(n;4,6,10)=\Phi(n-10;4,6,10)+\Phi(n;4,6).
$$
При фиксированном $n$ данный подход позволяет шаг за шагом сосчитать искомое количество вариантов. Однако полученное рекуррентное соотношение имеет один существенный недостаток --- искомые числа зависят не только от $n$, но и от нескольких дополнительных параметров. Это усложняет проведение расчетов по данной формуле. Кроме того, не очень понятно, как получить явное решение этого рекуррентного соотношения. 


\mysubitem Оказывается, однако, что поставленная задача достаточно просто решается с помощью производящих функций. Действительно, с формальной точки зрения наша задача сводится к подсчету количества решений уравнения вида
$$
4y_4+6y_6+10y_{10}=n
$$
в целых неотрицательных числах. Последнее же уравнение имеет достаточно очевидную трактовку в терминах задачи о раскладке \emph{неразличимых} предметов по \emph{различимым} ящикам, а значит, может быть решена с использованием комбинаторного смысла произведения обыкновенных производящих функций. 

Именно, пусть у нас имеется $n$ неразличимых предметов и $3$ различимых ящика. В первый из них мы можем складывать предметы лишь в случае, если их количество кратно четырем, во второй --- в случае, если их количество кратно шести. Наконец, в последний, третий ящик мы можем складывать предметы в случае, если их количество кратно десяти. Соответствующие этим способам раскладки обыкновенные производящие функции равны
$$
\phi_4(z)=1+z^4+z^8+\ldots,\qquad
\phi_6(z)=1+z^6+z^{12}+\ldots,\qquad
\phi_{10}(z)=1+z^{10}+z^{20}+\ldots,
$$
а производящая функция $\phi(z)$, описывающая общее количество способов раскладки предметов по трем таким различимым ящикам, определяется так:
\begin{equation}
\label{eq:phi_post}
\phi(z)=\phi_4(z)\cdot \phi_6(z)\cdot \phi_{10}(z)=\dfrac{1}{(1-z^4)(1-z^6)(1-z^{10})}.
\end{equation}
В упражнении ... предлагается получить из формулы (\ref{eq:phi_post}) следующее рекуррентное соотношение на количество $h(n)$ способов наклейки марок на бандероль:
\begin{equation}
\label{eq:req_post}
h(n)=h(n-4)+h(n-6)-h(n-14)-h(n-16)+h(n-20),
\end{equation}
$$
h(0)=1,\qquad\,h(n)=0 \quad \forall \,n<0.
$$
Такое рекуррентное соотношение зависит лишь от одного параметра $n$, а временная сложность алгоритма, построенного на его основе, равна $\mathop{{\rm O}}(\log{n})$.  

\mysubitem Итак, успех в решении рассматриваемой задачи связан, прежде всего, с удачной ее переформулировкой. Именно, нам удалось переформулировать задачу в терминах раскладки кратного количества неразличимых предметов по фиксированному числу $k$ различимых ящиков, а затем воспользоваться комбинаторным смыслом умножения $k$ производящих функций. Достаточно ясно, как обобщить данный подход на другие задачи подобного типа.

Пусть, например, мы имеем право наклеивать на бандероль не более одной марки данного достоинства. В этом случае производящая функция, описывающая решение такой задачи, имеет вид
$$
\phi(z)=(1+z^4)(1+z^6)(1+z^{10})=1+z^4+z^6+2z^{10}+z^{14}+z^{16}+z^{20}.
$$
Мы видим, например, что сумму в $10$ рублей мы можем получить двумя способами --- наклеивая либо по одной марке достоинствами в $4$ и в $6$ рублей, либо наклеивая одну марку достоинством в $10$ рублей.

С формальной точки зрения данная задача, очевидно, эквивалентна задаче поиска количества решений уравнения 
$$
4\cdot y_4+6\cdot y_6+10\cdot y_{10}=n
$$
при условии, что все $y_m,$ $m=4,6,10,$ равны нулю или единице. 


\myitem Описанная выше техника применима к решению и еще одной очень интересной и важной с практической точки зрения задачи --- задачи о разбиении заданного числа $n\geq 0$ на слагаемые.

\begin{defin}  
Разбиением целого положительного числа $n$ на слагаемые (или, как еще говорят, на части) называется неупорядоченный набор положительных целых чисел, сумма которых равна $n$.
\end{defin}

Нам хочется подсчитать количество $p(n)$ всех разбиений при фиксированном значении числа $n$. На языке раскладки предметов по ящикам эта задача равносильна подсчету количества способов раскладки $n$ неразличимых предметов по $k$ неразличимым же ящикам при условиях, что количество ящиков заранее не фиксировано, и что в каждый ящик мы обязаны положить хотя бы один предмет. 

\mysubitem С формальной точки зрения любое разбиение $n$ представляет собой некоторое решение в положительных целых числах уравнения 
\begin{equation}
\label{eq:partition_number_x}
x_1+x_2+\ldots+x_k=n
\end{equation}
при фиксированном $n> 0$ и произвольном $k>0$. Понятно, что все $x_i$ в этом уравнении ограничены сверху значением $x_i=n$ для любого $i\in[1,k]$. Сам же индекс $k$, в свою очередь, также ограничен сверху этим значением: случаю $k=n$ отвечает разложение $n$ в сумму $n$ единиц. Таким образом, более точно поставленная нами задача формулируется так: 

\begin{problem} \label{problem:all_des_1}
Найти количество $p(n)$ решений в положительных целых числах уравнения (\ref{eq:partition_number_x}) при дополнительных ограничениях $0< x_i \leq n$ $\forall\,\, i=1,\ldots,k;$ $0<k\leq n.$
\end{problem}

Заметим теперь, что порядок слагаемых в уравнении (\ref{eq:partition_number_x}) роли не играет, и поэтому мы для определенности можем всегда считать, что $x_1\geq x_2\geq \ldots\geq x_k>0$. Это соглашение, в свою очередь, позволяет нам в формулировке задачи избавиться от индекса $k$, а именно, искать количество $p(n)$ всех целых \emph{неотрицательных} решений уравнения вида
$$
x_1+x_2+\ldots+x_n=n,\qquad x_1\geq x_2\geq \ldots\geq x_n\geq 0. 
$$

\mysubitem Подсчитаем количество $p(n)$ разбиений для нескольких первых значений $n$:
\begin{equation*}
\begin{array}{ll}
 p(1)=1: &  1=(1);   \\[2pt]
 p(2)=2: &  2=(1+1)=(2);   \\[2pt]
 p(3)=3: &  3=(1+1+1)=(2+1)=(3); \\[2pt]
 p(4)=5: &  4=(1+1+1+1)=(2+1+1)=(2+2)=(3+1)=(4); \\[2pt]
 p(5)=7: &  5=(1+1+1+1+1)=(2+1+1+1)=(2+2+1)=(3+1+1)= \\[2pt]
             &  \phantom{5}=(3+2)=(4+1)=(5).
\end{array}
\end{equation*}
Кроме того, для удобства записи рекуррентных соотношений, связанных с числами $p(n)$, полагают, что $p(0)=1$, $p(n)=0$ в случае отрицательных целых $n$. 


\mysubitem Как и задачу о наклейке марок на бандероль, задачу \ref{problem:all_des_1} можно свести к задаче о раскладке $n$ неразличимых предметов по $n$ различимым ящикам. Действительно, будем складывать в первый ящик единицы, то есть неразличимые предметы в любом количестве, во второй ящик будем складывать двойки, то есть неразличимые предметы, общее количество которых кратно двойке, и так далее. В этом случае любой способ раскладки ровно $n$ неразличимых предметов по $n$ таким ящикам дает нам некоторое разбиение заданного числа $n$ и наоборот.

С формальной точки зрения это означает, что задачу \ref{problem:all_des_1} можно переформулировать следующим образом:

\begin{problem} \label{problem:all_des_1'}
Найти количество всех решений в неотрицательных целых числах уравнения вида 
$$
y_1+2\cdot y_2+\ldots+n\cdot y_n=n,\qquad \qquad 0\leq y_i \leq n\qquad \forall\,\, i=1,\ldots,n.
$$
\end{problem}

Такая задача, как мы уже понимаем, легко решается с помощью обыкновенных производящих функций. Комбинаторному действию, заключающемуся в укладке любого количества неразличимых предметов в первый ящик, отвечает производящая функция 
$$
\phi_1(z)=1+z+z^2+\ldots=\dfrac{1}{1-z}.
$$
Комбинаторному действию, состоящему в укладке четного числа неразличимых предметов во второй ящик, соответствует производящая функция
$$
\phi_2(z)=1+z^2+z^4+\ldots=\dfrac{1}{1-z^2}.
$$
Наконец, комбинаторному действию, отвечающему раскладке $n$ неразличимых предметов по $n$ таким ящикам, соответствует произведение всех таких функций:
$$
\phi_1(z)\cdot\phi_2(z)\cdot\ldots\cdot\phi_n(z)=\dfrac{1}{(1-z)(1-z^2)\ldots (1-z^n)}.
$$

\mysubitem Построенное выше решение обладает, однако, одним существенным недостатком --- в этом решении явным образом присутствует параметр $n$. Нам же хочется получить решение, не зависящее от $n$. Оказывается, это можно сделать, записывая решение как формально бесконечное произведение вида
\begin{equation}
\label{eq:partition_number_Euler}
\phi(z)=\dfrac{1}{(1-z)}\dfrac{1}{(1-z^2)}\ldots \dfrac{1}{(1-z^n)}\ldots.
\end{equation}
При этом для любого фиксированного $n$ количество слагаемых с $z^n$ будет, очевидно, конечным. 

Решение задачи о разбиении заданного натурального числа $n$ в виде бесконечного произведения (\ref{eq:partition_number_Euler}) было получено впервые Леонардом Эйлером в сороковых годах восемнадцатого века.


\myitem C помощью обыкновенных производящих функций можно получать достаточно красивые результаты, связанные с разбиением числа $n$ на слагаемые. В качестве характерного примера рассмотрим задачу о разбиении числа $n$ в случае, когда любому числу позволяется входить в это разбиение не более одного раза. 

\mysubitem Несложно понять, что производящая функция, описывающая количество таких разбиений, имеет следующий вид:
$$
\phi(z)=(1+z)(1+z^2)\ldots(1+z^n)\ldots
$$
Известно, однако, что для любого натурального $j$ 
$$
1+z^j=\dfrac{(1-z^{2j})}{(1-z^j)}.
$$
Поэтому функцию $\phi(z)$ можно переписать так:
$$
\phi(z)=\dfrac{(1-z^{2})}{(1-z)}\dfrac{(1-z^{4})}{(1-z^2)}\dfrac{(1-z^{6})}{(1-z^3)}\ldots \dfrac{(1-z^{2n})}{(1-z^n)}\ldots
$$

\mysubitem В числителе полученного выше выражения для $\phi(z)$ стоят сомножители с четными степенями $z$. В бесконечном произведении они постепенно сокращаются с аналогичными сомножителями, стоящими в знаменателях этих дробей. Функция $\phi(z)$ после таких сокращений записывается в виде
$$
\phi(z)=\dfrac{1}{(1-z)}\dfrac{1}{(1-z^3)}\dfrac{1}{(1-z^5)}\ldots \dfrac{1}{(1-z^{2n-1})}\ldots
$$
Но такая производящая функция описывает количество разбиений $n$ на слагаемые, каждое из которых является нечетным числом. 

\mysubitem Таким образом, доказана следующая
\begin{theor} \label{theor:odd_part}
Количество способов разбиения натурального числа $n$ на слагаемые, при котором любое число входит в это разбиение не более одного раза, равно количеству разбиений $n$ на нечетные слагаемые.
\end{theor}

\begin{examp} В случае $n=5$ имеется три разбиения, в которых любое число, меньшее или равное $n$, входит не более одного раза:
$$
5=(4+1)=(3+2)=(5).
$$
Количество разбиений числа $n=5$, содержащих только нечетные слагаемые, также равно трем:
$$
5=(1+1+1+1+1)=(3+1+1)=(5).
$$
\end{examp}


\myitem Заметим, что в задачах раскладки $n$ неразличимых предметов по различимым ящикам (т.е. в задачах о \emph{разложении} числа $n$ на слагаемые) достаточно легко решался случай фиксированного числа $k$ ящиков, и несколько сложнее --- случай не фиксированного $k$. 

Оказывается, в задачах раскладки $n$ неразличимых предметов по неразличимым ящикам (т.е. в задачах о \emph{разбиении} числа $n$ на слагаемые) все обстоит ровно наоборот. Именно, мы в данном параграфе показали, что задачи о раскладке $n$ неразличимых предметов по неразличимым ящикам в случае, когда количество $k$ этих ящиков заранее не определено, решаются достаточно легко. Задачи же раскладки $n$ неразличимых предметов по фиксированному числу $k$ неразличимых ящиков оказываются более сложными. Технике решения таких задач посвящен следующий параграф. 


\section*{Упражнения}

\begin{exerc}
Вывести из формулы (\ref{eq:phi_post}) рекуррентное соотношение (\ref{eq:req_post}) на количество $h(n)$ способов наклейки марок на бандероль.
\end{exerc}

\begin{exerc} 
Сколькими способами можно разменять монету в $10$ копеек на монеты в $1,$ $2,$ $3$ и $5$ копеек?
\end{exerc}

\begin{exerc} 
Доказать, что один рубль можно разменять монетами в две и пять копеек большим количеством способов, чем монетами достоинством в три и пять копеек.
\end{exerc}

\begin{exerc} 
В кошельке лежат три монеты по $2$ копейки и две монеты по $3$ копейки. Сколькими способами можно уплатить с помощью этих монет сумму в $8$ копеек? А если все монеты в кошельке различимы, например, все они --- различных годов выпуска?
\end{exerc}

\begin{exerc}
Сколькими способами можно выбрать из урны $5$ шаров красного, синего, белого и черного цветов при условии, что красные шары выбираются по одному за раз, синего --- по четыре за раз, белого --- по пять за раз и черного --- по три за раз?
\end{exerc}

\begin{exerc}
Сколько существует способов выбора $20$ объектов из множества объектов пяти типов при условии, что количество объектов первого типа кратно пяти, второго --- трем, объектов третьего типа следует выбирать не более четырех, четвертого --- не менее трех, пятого --- не более двух?
\end{exerc}

\begin{exerc} 
Дать комбинаторное доказательство теоремы \ref{theor:odd_part}.
\end{exerc}

\begin{exerc} 
Доказать, что количество разбиений $n$ на слагаемые, каждое из которых повторяется не более трёх раз, совпадает с количеством разбиений $n$, в которых повторяться могут только нечётные слагаемые.
\end{exerc}


\section*{Решение упражнений}

\begin{sol_exerc}
Формулу (\ref{eq:phi_post}) можно переписать в следующем виде:
$$
\phi(z)=\dfrac{1}{1-(z^4+z^6-z^{14}-z^{16}+z^{20})}.
$$
Теперь рекуррентное соотношение (\ref{eq:req_post}) следует из алгоритма деления формальных степенных рядов, описанного в первой главе.
\end{sol_exerc}

\begin{sol_exerc}
Количество способов разменять десять копеек совпадает с количеством решений в целых неотрицательных числах уравнения вида
$$
y_1+2y_2+3y_3+5y_5=10.
$$
Для подсчета этого количества запишем соответствующую этому уравнению производящую функцию
$$
\phi(z)=\dfrac{1}{(1-z)(1-z^2)(1-z^3)(1-z^5)}=\dfrac{1}{1-(z+z^2-z^4-z^7+z^9+z^{10}-z^{11})}.
$$
Отсюда легко записать рекуррентное соотношение для вычисления коэффициентов $a_n$ при $z^n$:
$$
a_n=a_{n-1}+a_{n-2}-a_{n-4}-a_{n-7}+a_{n-9}+a_{n-10}-a_{n-11},\qquad a_0=1,\qquad a_n=0,\,\,n<0.
$$
С его помощью несложно определить, что коэффициент $a_{10}=20$. 
\end{sol_exerc}

\begin{sol_exerc}
Количество способов разменять один рубль монетами в две и пять копеек совпадает с количеством решений в целых неотрицательных числах уравнения вида
$$
2y_2+5y_5=100.
$$
Его решение в производящих функциях будет иметь вид
$$
\phi_1(z)=\dfrac{1}{(1-z^2)(1-z^5)}.
$$
Можно убедиться, что коэффициент при $z^{100}$ у этой функции равен одиннадцати. Однако это можно заметить и непосредственно из уравнения для $y_2$ и $y_5$, заметив, что $y_5$ может принимать любое четное значение от $0$ до $20$, и что количество таких значений равно $11$. 

Аналогично, количество способов разменять рубль монетами в три и пять копеек равно числу решений уравнения в неотрицательных целых числах вида
$$
3y_3+5y_{5}=100.
$$
Можно убедиться, что таких решений всего семь.
\end{sol_exerc}

\begin{sol_exerc}
Данная задача эквивалентна поиску количества решений уравнения вида
$$
2y_2+3y_3=8
$$
при дополнительных ограничениях $y_2=0,1,2,3$ и $y_3=0,1,2$. Производящая функция, коэффициенты которой описывают количество соответствующих решений, имеет вид
$$
(1+z^2+z^4+z^6)\cdot(1+z^3+z^6)=z^6+\sum\limits_{n=0}^{12}z^n.
$$
Поэтому имеется только один способ выбрать из этих монет сумму в $8$ копеек. 

В случае, если эти монеты различимы, дело сводится к решению уравнения вида
$$
x_1+x_2+x_3+x_4+x_5=8
$$
при ограничениях $x_1,x_2,x_3=0$ или $2$, $x_4$, $x_5=0$ или $3$. Количество таких решений можно подсчитать с помощью обыкновенной производящей функции вида
$$
(1+z^2)^3\cdot(1+z^3)^2,
$$
коэффициент при $z^8$ у которой равен трем.
\end{sol_exerc}

\begin{sol_exerc}
С формальной точки зрения дело сводится к решению следующего уравнения в целых неотрицательных числах:
$$
y_1+3y_3+4y_4+5y_5=5.
$$
Количество способов выбора пяти шаров из урны отвечает коэффициент при $z^5$ у производящей функции вида
$$
\dfrac{1}{1-z}\cdot\dfrac{1}{1-z^3}\cdot\dfrac{1}{1-z^4}\cdot\dfrac{1}{1-z^5}=(1+z+z^2+z^3+z^4+z^5+\ldots)\cdot
(1+z^3+\ldots)\cdot(1+z^4+\ldots)\cdot (1+z^5+\ldots)=
$$
$$
=1+z+z^2+2z^3+3z^4+4z^5+\ldots.
$$
Следовательно, искомое количество равно четырем.
\end{sol_exerc}


\begin{sol_exerc}
В данном случае формальное решение описывается уравнением вида
$$
5y_1+3y_2+y_3+y_4+y_5=20
$$
при дополнительных ограничениях $y_i\in\Z_+$, $y_3\leq 4$, $y_5\leq 2$, $y_3\leq 3$. Соответствующая этим условиям производящая функция записывается в виде
$$
f(z)=(1+z^5+\ldots+z^{20}+\ldots)\cdot(1+z^3+\ldots+z^{18}+\ldots)\cdot (1+z+\ldots+z^4)\cdot
(z^3+z^4+\ldots+z^{20}+\ldots)\cdot (1+z+z^2)=
$$
$$
=\dfrac{1}{1-z^5}\cdot\dfrac{1}{1-z^3}\cdot\dfrac{1-z^5}{1-z}\cdot \dfrac{z^3}{1-z}\cdot \dfrac{1-z^3}{1-z}=
\dfrac{z^3}{(1-z)^3}=z^3\sum\limits_{n=0}^{+\infty}\BCf{n+2}{n}z^n.
$$
Коэффициент при $z^{20}$, таким образом, оказывается равным $\BCf{19}{17}=171$.
\end{sol_exerc}

\begin{sol_exerc}
Рассмотрим некоторое разбиение на различные слагаемые. Запишем каждое слагаемое в виде $2^k \cdot q$, где $q$ нечётное, и разобьём это слагаемое на $2^k$ нечётных слагаемых, равных $q$. Так мы получим разбиение на нечётные слагаемые. 

Обратно, в разбиении на нечётные слагаемые подсчитаем количество слагаемых, равных $q$, и запишем это количество в виде суммы различных степеней двойки: $2^{a_1}+2^{a_2}+\cdots+2^{a_k}$. Заменим все слагаемые, равные $q$, на $k$ слагаемых, равных $2^{a_1}\cdot q, 2^{a_2}\cdot q,\dots , 2^{a_k} \cdot q$. Сделав это для каждого $q$, встречающегося в разбиении $n$ на нечётные слагаемые, мы получим некоторое разбиение на различные слагаемые.

Указанные преобразования взаимно обратны и, как следствие, устанавливают биекцию между разбиениями на различные и на нечётные слагаемые.
\end{sol_exerc}


\begin{sol_exerc}
Переформулируем задачу на языке производящих функций. Количество разбиений $n$ на слагаемые, каждое из которых повторяется не более трёх раз, описывается производящей функцией вида 
$$
f_1(z)=(1+z+z^2+z^3)\cdot(1+z^2+z^4+z^6)\cdot\dots\cdot(1+z^n+z^{2n}+z^{3n})\cdot\dots 
$$
Производящая функция
$$
f_2(z)=\frac{1}{1-z}\cdot(1+z^2)\cdot\frac{1}{1-z^3}\cdot(1+z^4)\cdot\dots\cdot\frac{1}{1-z^{2n-1}}\cdot(1+z^{2n})\cdot\dots
$$
определяет количество разбиений числа $n$, в которых повторяться могут только нечётные слагаемые.

Разложим в правой части выражения для $f_1(z)$ каждую скобку по формуле $(1+z^n+z^{2n}+z^{3n}) = (1+z^n)\cdot(1+z^{2n})$. В результате получим, что
$$
f_1(z)=(1+z) \cdot (1+z^2)^2 \cdot(1+z^3)\cdot(1+z^4)^4 \cdot\dots\cdot(1+z^{2n-1})\cdot(1+z^{2n})^2\cdot\dots
$$
Для того, чтобы привести $f_2(z)$ к аналогичному виду, воспользуемся теоремой  \ref{theor:odd_part} о равенстве разбиений на нечетное число частей и разбиений, в которых любое число входит не более одного раза. Согласно этой теореме
$$
\frac{1}{1-z}\cdot\frac{1}{1-z^3}\cdot\dots\cdot\frac{1}{1-z^{2n-1}}\cdot\ldots=(1+z)\cdot (1+z^2)\cdot (1+z^3)\cdot\ldots
$$
Следовательно,
$$
f_2(z)=(1+z) \cdot (1+z^2)^2 \cdot(1+z^3)\cdot(1+z^4)^4 \cdot\dots\cdot(1+z^{2n-1})\cdot(1+z^{2n})^2\cdot\dots=f_1(z).
$$
\end{sol_exerc}





\section{Задачи раскладки $n$ неразличимых предметов по $k$ неразличимым ящикам. Диаграммная техника}

\myitem Напомним, что в первой главе за нами остался долг --- мы не показали, как решать задачи о раскладке $n$ неразличимых предметов по $k$ неразличимым же ящикам. Основная задача данного параграфа --- научиться, наконец, такие задачи решать. 

\mysubitem Начнем с основных определений и утверждений.

\begin{defin} 
Разбиением целого положительного числа $n$ ровно на $k$ слагаемых (или ровно на $k$ частей) называется неупорядоченный набор, состоящий из фиксированного количества $k$ целых положительных чисел $x_i$, $i=1,\ldots,k$, сумма которых равна $n$. 
\end{defin}

Очевидно, что любое такое разбиение с формальной точки зрения представляет собой некоторое решение в целых положительных числах уравнения вида 
\begin{equation}
\label{eq:eq_n_k}
x_1+x_2+\ldots+x_k=n
\end{equation}
при фиксированнных значениях $n$ и $k$. Так как порядок слагаемых в левой части данного равенства роли не играет, то для определенности можно, например, считать, что $x_1\geq x_2 \geq \ldots \geq x_n\geq 1.$

Очевидно также, что любое такое разбиение можно представлять себе как некоторый вариант раскладки $n$ неразличимых предметов ровно по $k$ неразличимым ящикам при условии, что в любом ящике находится хотя бы один предмет.

\mysubitem Количество всех разбиений числа $n$ на $k$ частей обозначается обычно через $p_k(n)$. Для небольших значений $n$ и $k$ числа $p_k(n)$ можно найти простым перебором. Например,
$$
\begin{array}{ll}
p_2(5)=2,\qquad &\text{так как}\qquad 5=(4+1)=(3+2);\\[2pt]
p_3(7)=4,\qquad &\text{так как}\qquad 7=(5+1+1)=(4+2+1)=(3+3+1)=(3+3+2).
\end{array}
$$

Несложно также понять, чему равно $p_k(n)$ для некоторых специальных случаев. Например, тривиальному случаю $k=1$ отвечает единственное решение вида $x_1=n,$  поэтому $p_1(n)=1$ для любого $n$. Ясно также, что $p_n(n)=1$: разбиению любого числа $n$ на $n$ же частей соответствует единственное представление этого числа в виде суммы $n$ единиц. Наконец, очевидно, что $p_k(n)=0$ для любого $k>n.$

Полезно также заметить, что
\begin{equation}
\label{eq:eq_p_kn_p_n}
\sum\limits_{k=1}^n p_k(n)=p(n),
\end{equation}
где $p(n)$ есть рассмотренное в предыдущем параграфе количество всевозможных разбиений числа $n$.

\mysubitem Решение задачи в общем случае мы, как обычно, начнем с вывода рекуррентного соотношения для чисел $p_k(n)$. 

\begin{propos} \label{propos:req_eq_p_k_1}
Справедливо рекуррентное соотношение
$$
p_k(n)=\sum\limits_{r=1}^m p_r(n-k),\qquad k=2,3,\ldots,n-1;\qquad m=\min\{k,n-k\};
$$
$$
p_1(n)=p_n(n)=1;\qquad\qquad p_k(n)=0\quad \text{для любого $k>n.$}
$$
\end{propos}

\evidp Введем новые переменные $\tilde{x}_i=x_i-1$. Тогда уравнение (\ref{eq:eq_n_k}) примет вид
\begin{equation}
\label{eq:eq_n_k_z}
\tilde{x}_1+\tilde{x}_2+\ldots+\tilde{x}_k=n-k,\qquad \tilde{x}_1\geq \tilde{x}_2\geq \ldots \geq \tilde{x}_k\geq 0.
\end{equation}
Все множество решений такого уравнения можно разбить на блоки в зависимости от количества $r$ ненулевых слагаемых в левой части уравнения (\ref{eq:eq_n_k_z}). Количество элементов в каждом таком блоке равно, очевидно, $p_r(n-k)$. 

Вообще говоря, количество блоков в таком разбиении равно $k$. Однако в случае, когда стоящее в правой части данного равенства число $(n-k)$ оказывается меньшим $k$, все слагаемые $\tilde{x_r}$ с $r>(n-k)$ обязаны быть равными нулю, так что в этом случае нам достаточно суммировать блоки не до $k$, а до $(n-k)$.   \qed

\mysubitem Далее нам понадобится еще одно полезное рекуррентное соотношение для чисел $p_k(n)$.

\begin{propos}
Числа $p_k(n)$ удовлетворяют рекуррентному соотношению вида
\begin{equation}
\label{eq:eq_p_k_p_n_m_k}
p_k(n)=p_{k-1}(n-1)+p_k(n-k).
\end{equation}
\end{propos}

\evidp С формальной точки зрения формула (\ref{eq:eq_p_k_p_n_m_k}) является простым следствием утверждения \ref{propos:req_eq_p_k_1}. Такое доказательство предлагается провести в упражнении \ref{exerc:comb_ev_req_part} к данному параграфу. Здесь же мы докажем рекуррентное соотношение (\ref{eq:eq_p_k_p_n_m_k}) непосредственно из комбинаторных соображений. 

Разобъем множество всех разбиений числа $n$ на два блока.Поместим в первый блок все разбиения, в которые хотя бы один раз входит единица, а во второй --- разбиения, в которые единица не входит. Для всех разбиений из первого блока эту единицу всегда можно поставить на последнее, $k$-е место. На оставшихся $k-1$ позициях может стоять любое из $p_{k-1}(n-1)$ разбиений числа $(n-1)$ на $(k-1)$ частей. Ясно, что количество таких разбиений равно $p_{k-1}(n-1)$. 

Любое разбиение из второго блока свободно от единиц --- все слагаемые $x_i$ в разложении (\ref{eq:eq_n_k}) числа $n$ на $k$ частей строго больше единицы. Вычитая из каждого такого слагаемого единицу, мы получим какое-то разбиение числа $(n-k)$ на $k$ частей. Верно и обратное --- любое из $p_k(n-k)$  таких разбиений можно превратить в разбиение числа $n$, свободное от единиц. Следовательно, количество разбиений из второго блока совпадает с количеством всех разбиений числа $(n-k)$ на $k$ частей, т.е. равно $p_k(n-k)$. \qed


\myitem Как мы уже отмечали выше, любое разбиение натурального числа $n$ ровно на $k$ частей можно трактовать как некоторый вариант раскладки $n$ неразличимых предметов по $k$ неразличимым же ящикам при условии, что в каждый ящик должен быть положен хотя бы один предмет. Перейдем теперь к задаче о раскладке $n$ неразличимых предметов по $k$ неразличимым ящикам при отсутствии каких-либо ограничений на количество предметов в каждом ящике. 

\mysubitem На языке теории разбиений такая схема раскладки соответствует разбиению целого неотрицательного числа $n$ на \emph{не более чем} $k$ слагаемых.

\begin{defin} Разбиением целого неотрицательного числа $n$ на не более чем $k$ слагаемых называется неупорядоченный набор, состоящий из $k$ \emph{неотрицательных} чисел $x_i$, $i=1,\ldots,k$, сумма которых равна $n$:
$$
x_1+x_2+\ldots+x_k=n,\qquad\qquad x_1\geq x_2\geq\ldots\geq x_k\geq 0.
$$
\end{defin}

Обозначим через $P_k(n)$ количество всех таких разбиений. Очевидно, что $P_1(n)=1$. Кроме того, в данной задаче не исключен случай, когда в любом из $k$ ящиков предметы отсутствуют (т.е. $n=0$). Так как для любого $k$ такой случай единственен, то число $P_k(0)=1$ $\forall\,\,k\geq 0$. 

\mysubitem Числа $P_k(n)$ достаточно тесно связаны с числами $p_k(n)$ и $p(n)$. Так, при $k\geq n$ справедливо равенство
$$
P_k(n)=p(n).
$$
При $n=0$ оно верно, так как по определению $P_k(0)=1=p(0)$. Справедливость этого равенства при $n>0$ следует просто из того, что невозможно разбить целое положительное число $n$ более чем на $n$ частей. 

Далее, из определения чисел $P_k(n)$ и $p_k(n)$ следуют равенства
\begin{equation}
\label{eq:p_k_n_P_k_n}
p_k(n)=P_k(n)-P_{k-1}(n)\qquad \qquad \text{и} \qquad \qquad P_k(n)=\sum\limits_{r=1}^k p_r(n),
\end{equation}
связывающие эти числа при всех $n>0$ и $k\geq 1$. С их помощью, например, несложно доказывать различные рекуррентные соотношения для $P_k(n)$ по известным рекуррентным соотношниям для чисел $p_k(n)$. В качестве примера докажем следующее

\begin{propos} \label{propos:req_eq_P_k_1}
Числа $P_k(n)$ удовлетворяют следующему рекуррентному соотношению:
\begin{equation}
\label{eq:P_k_n_req_eq}
P_k(n)=P_{k-1}(n)+P_{k}(n-k)\qquad\qquad \forall\,\,k>1;
\end{equation}
$$
P_1(n)=1;\qquad P_k(0)=1; \qquad P_k(n)=0\,\,\,\,\text{при}\,\,\,\,n<0.
$$
\end{propos}

\evidp Приведем вначале формальное доказательство данного рекуррентного соотношения. В случае $n=0$ равенство (\ref{eq:P_k_n_req_eq}) выполняется: 
$$
P_k(0)=P_{k-1}(0)=1, \qquad P_k(-k)=0.
$$
В случае $n>0$ воспользуемся равенствами (\ref{eq:p_k_n_P_k_n}):
$$
p_k(n)=P_k(n)-P_{k-1}(n)\qquad \Longrightarrow \qquad P_k(n)=P_{k-1}(n)+p_k(n).
$$
Согласно утверждению \ref{propos:req_eq_p_k_1}, 
$$
p_k(n)=\sum\limits_{r=1}^m p_r(n-k)=P_m(n-k),\qquad\text{где $m=\min\{k,n-k\}.$}
$$
Теперь остается заметить, что для любого $k>n-k$ число $P_k(n-k)=P_{n-k}(n-k)$, и потому $p_k(n)=P_k(n-k).$ 

Для комбинаторного доказательства (\ref{eq:P_k_n_req_eq}) разобъем множество разбиений числа $n$, содержащих не более чем $k$ частей, на два блока --- блок разбиений, состоящих ровно из $k$ частей, и блок разбиений числа на части, количество которых строго меньше $k$. Количество разбиений во втором блоке равно, очевидно, $P_{k-1}(n)$. Осталось понять, чему равно количество разбиений в первом блоке.

Любое разбиение, состоящее ровно из $k$ частей, содержит ровно $k$ положительных целых чисел. Вычитая из каждого такого числа по единице, мы получаем разбиение числа $(n-k)$ на не более чем $k$ частей. А количество таких разбиений равно $P_k(n-k)$. \qed

\myitem Заметим, что в последней части комбинаторного доказательства рекуррентного соотношения (\ref{eq:P_k_n_req_eq}) мы, по сути, доказали следующее равенство:
\begin{equation}
\label{eq:p_k_P_k_comb}
p_k(n)=P_k(n-k)\qquad \Longleftrightarrow\qquad P_k(n)=p_k(n+k).
\end{equation}
Подобного рода доказательства можно сделать значительно более наглядными с помощью так называемой \emph{диаграммной техники.}

\begin{defin} 
Диаграммой Ферре называется следующее графическое представление любого разбиения числа $n$:
\begin{itemize}
\item[-] каждый член разбиения (любое слагаемое $x_i$) представляется в виде строки, состоящей из соответствующего количества точек;\\
\item[-] указанные строки располагаются в порядке невозрастания, выравненными по левому краю диаграммы.
\end{itemize}
\end{defin}
 
Приведем несколько характерных примеров диаграмм Ферре:
$$
\begin{array}{ll}
 n=12=4+4+3+1:  & $\qquad\qquad$
 \begin{array}{cccc}
 \bullet & \bullet & \bullet & \bullet \\
 \bullet & \bullet & \bullet & \bullet \\
 \bullet & \bullet & \bullet &  \\
 \bullet &   &  &  
 \end{array}  \\[36pt]
 n=5=3+2:  &  $\qquad\qquad$
 \begin{array}{ccc}
 \bullet & \bullet & \bullet  \\
 \bullet & \bullet & 
 \end{array} 
\end{array}
$$

Иногда удобно вместо точек рисовать квадраты. Такое графическое представление называется диаграммой Юнга. 

\mysubitem Покажем теперь, как можно с помощью диаграмм Ферре несколько более наглядно доказать равенство (\ref{eq:p_k_P_k_comb}), т.е. доказать, что количество $P_k(n)$ разбиений числа $n$ на не более чем $k$ слагаемых равно количеству способов разбиения $n+k$ ровно на $k$ слагаемых. 

Рассмотрим для этого произвольную диаграмму Ферре, изображающую разбиение числа $n$ на не более чем $k$ слагаемых:
$$
\text{пусть $n=10$, $k=4$, $n=10=5+4+1$}\qquad \Longrightarrow\qquad
 \left\{\begin{array}{ccccc}
 \bullet & \bullet & \bullet & \bullet & \bullet \\
 \bullet & \bullet & \bullet & \bullet & \\
 \bullet &   &   &   &\\
 \circ  &   &   &   &
 \end{array} \right.
$$
Как видно из примера, такая диаграмма состоит из $n=10$ точек (символы $\bullet$), расположенных в не более чем $k=4$ строках. Для наглядности в примере последняя, пустая строка заполнена символом $\circ$. 

Теперь сделаем следующее: добавим к этой диаграмме столбец, состоящий ровно из $k$ точек:
$$
 \begin{array}{ccccc}
 \bullet & \bullet & \bullet & \bullet & \bullet \\
 \bullet & \bullet & \bullet & \bullet & \\
 \bullet &   &   &   &\\
 \circ  &   &   &   &
 \end{array} \qquad \longmapsto \qquad
 \begin{array}{cccccc}
 \bullet & \bullet & \bullet & \bullet & \bullet & \bullet \\
 \bullet & \bullet & \bullet & \bullet & \bullet & \\
 \bullet & \bullet &   &   &   &\\
 \bullet & \circ &   &   &   &
 \end{array}
 \qquad \Longleftrightarrow \qquad
 \begin{array}{cccccc}
 \bullet & \bullet & \bullet & \bullet & \bullet & \bullet \\
 \bullet & \bullet & \bullet & \bullet & \bullet & \\
 \bullet & \bullet &   &   &   &\\
 \bullet &  &   &   &   &
 \end{array}
$$
В результате получаем диаграмму Ферре, состоящую ровно из $n+k$ точек и содержащую хотя бы один столбец длины $k$. Но такая диаграмма как раз и изображает разбиение числа $n+k$ ровно на $k$ частей. 

Обратно, удаляя из любой диаграммы Ферре, изображающей разбиение числа $k+n$ ровно на $k$ частей, первый столбец, мы получаем диаграмму, соответствующую какому-то разбиению числа $n$ на не более чем $k$ частей. 

Итак, с помощью диаграмм Ферре мы установили взаимно-однозначное соответствие между множеством разбиений числа $n$ на не более чем $k$ частей и множеством разбиений числа $n+k$ ровно на $k$ частей, а следовательно, еще раз доказали равенство (\ref{eq:p_k_P_k_comb}).

\mysubitem Описанная при доказательстве (\ref{eq:p_k_P_k_comb}) техника, опирающаяся на работу с диаграммами Ферре, довольно часть используется в теории разбиений. Она позволяет сделать более наглядными комбинаторные рассуждения, а следовательно, и упростить решения многих задач из области теории разбиений. Ряд характерных примеров такого рода рассуждений предлагается проделать в упражнениях \ref{exerc:diagr_techn_1}--\ref{exerc:diagr_techn_4} к данному параграфу.



\myitem Перейдем теперь к построению производящих функций для чисел $p_n(k)$ и $P_n(k)$.

\mysubitem При построении таких функций весьма полезным оказывается понятие так называемой \emph{двойственной диаграммы Ферре.}  По определению, любую диаграмму Ферре мы читаем по строкам, понимая при этом, что любой строке отвечает некоторая часть разбиения заданного числа $n$. Однако ту же диаграмму мы можем читать и по столбцам, то есть мы можем трактовать уже любой столбец как некоторую часть разбиения. С формальной точки зрения это означает, что мы любому разбиению заданного числа $n$ на $k$ частей можем взаимно-однозначно сопоставить некоторое разбиение этого же числа $n$, описывающееся диаграммой Ферре, полученной из исходной поворотом на $90^\circ$ по часовой стрелке и приведением к нормальному виду (или отражением этой диаграммы относительно вертикальной оси). Такая диаграмма Ферре и называется диаграммой, двойственной к исходной.

\begin{examp} \label{examp:dual_diagr_Ferre}
Пусть $n=10=5+4+1$. Указанному разбиению отвечает диаграмма Ферре вида
$$
\begin{array}{ccccc}
 \bullet & \bullet & \bullet & \bullet & \bullet \\
 \bullet & \bullet & \bullet & \bullet & \\
 \bullet &   &   &   &
\end{array}
$$
Повернем эту диаграмму Ферре на $90^\circ$ и приведем полученную диаграмму к нормальному виду:
$$
\begin{array}{ccccc}
 \bullet & \bullet & \bullet & \bullet & \bullet \\
 \bullet & \bullet & \bullet & \bullet & \\
 \bullet &   &   &   &
\end{array}\qquad \curvearrowright\qquad
\begin{array}{ccc}
 \bullet & \bullet & \bullet \\
  & \bullet & \bullet \\
  & \bullet & \bullet \\
  & \bullet & \bullet \\
  & &  \bullet 
\end{array}\qquad \longmapsto\qquad 
\begin{array}{ccc}
 \bullet & \bullet & \bullet \\
 \bullet & \bullet & \\
 \bullet & \bullet & \\
 \bullet & \bullet & \\
 \bullet  & &  
\end{array}
$$
Полученная в результате этих операций двойственная диаграмма Ферре описывает уже некоторое другое разбиение этого же числа $n=10$, а именно, разбиение вида $n=10=3+2+2+2+1$. 
\end{examp}


\mysubitem Рассмотрим теперь диаграмму Ферре для числа $n$, состоящую из не более чем $k$ строк. Двойственная к ней диаграмма описывает разбиение числа $n$ на части, в котором любая часть не превосходит $k$. 

Так, в примере \ref{examp:dual_diagr_Ferre} разбиению $n=10$ вида $10=5+4+1$ на не более чем $3$ части отвечает двойственное разбиение этого же числа вида $10=3+2+2+2+1$, любая часть которого не превосходит трех.

Тем самым, справедливо следующее

\begin{propos} 
Количество $P_k(n)$ разбиений $n$ на не более чем $k$ частей равно количеству разбиений $n$ на части, любая из которых не превосходит $k$. 
\end{propos}

Теперь заметим, что любое разбиение $n$ на части, в котором любая часть не превосходит заданного числа $k$, можно трактовать как одно из решений в целых неотрицательных числах уравнения вида
$$
1\cdot y_1+2\cdot y_2+\ldots+k\cdot y_k=n,\qquad \qquad y_i\geq 0,\quad i=1,\ldots,k.
$$
Но количество всех решений такого рода уравнений мы умеем находить --- оно описывается обыкновенной производящей функцией вида
$$
F_k(z)=(1+z+z^2+\ldots)(1+z^2+z^4+\ldots)\ldots(1+z^k+z^{2k}+\ldots)=\dfrac{1}{(1-z)(1-z^2)\ldots(1-z^k)}.
$$
Как следствие, мы доказали, что $F_k(z)$ является производящей функцией для количества $P_k(n)$ разбиений $n$ на не более чем  $k$ слагаемых. Иными словами, эта функция описывает количество раскладок $n$ неразличимых предметов по $k$ неразличимым ящикам при отсутствии каких-либо ограничений на количество предметов в любом ящике.

\mysubitem Перейдем теперь к диаграмме Ферре, содержащей ровно $k$ строк, т.е. диаграмме, описывающей разбиение $n$ ровно на $k$ частей. Двойственная к ней диаграмма описывает разбиение $n$ на части, в котором хотя бы одна часть гарантированно равна $k$, а все остальные части разбиения не превосходят $k$. 

Так, в примере \ref{examp:dual_diagr_Ferre} разбиению $n=10=5+4+1$ отвечает двойственное разбиение $n=10=3+2+2+2+1$, содержащее одну часть, в точности равную $k=3$. Остальные части это число $k=3$ не превосходят.

Иными словами, с использованием понятия двойственной диаграммы Ферре мы доказали следующее

\begin{propos} 
Количество $p_k(n)$ разбиений числа $n$ ровно на $k$ слагаемых равно количеству разбиений $n$ на части, не превосходящие $k$, в котором одна из частей обязательно равна $k$. 
\end{propos}

Но любое разбиение $n$ на части, не превосходящие $k$, содержащее хотя бы одно слагаемое, равное $k$, на формальном языке можно рассматривать как решение в целых числах уравнения вида
$$
1\cdot y_1+2\cdot y_2+\ldots+k\cdot y_k=n,\qquad \qquad y_1\geq 0,\quad y_2\geq 0,\quad\ldots\quad y_{k-1}\geq 0, \quad y_k\geq 1.
$$
Количество решений такого рода уравнений описывается обыкновенной производящей функцией
$$
f_k(z)=(1+z+z^2+\ldots)(1+z^2+z^4+\ldots)\ldots(1+z^{k-1}+z^{2k-2}+\ldots)(z^k+z^{2k}+\ldots)\qquad \Longleftrightarrow
$$
$$
\Longleftrightarrow \qquad f_k(z)=\dfrac{z^k}{(1-z)(1-z^2)\ldots(1-z^k)}.
$$
Тем самым, $f_k(z)$ является производящей функцией для количества $p_k(n)$ разбиений $n$ на не более чем  $k$ слагаемых, или, на другом языке, она является производящей функцией для количества раскладок $n$ неразличимых предметов по $k$ неразличимым ящикам при условии, что в каждый ящик нам следует положить хотя бы один предмет.


\myitem В заключение данного параграфа вернемся к производящей функции $f(z)$ для количества $p(n)$ разбиений
$$
f(z)=\dfrac{1}{(1-z)(1-z^2)(1-z^3)\ldots}=:\dfrac{1}{Q(z)}
$$
и вслед за Л.Эйлером рассмотрим поподробнее стоящую в знаменателе функцию
$$
Q(z)=(1-z)(1-z^2)(1-z^3)\ldots
$$
После перемножения первых $22$ скобок Эйлер получил следующий результат:
$$
Q(z)=(1-z-z^2+z^5+z^7-z^{12}-z^{15}+z^{22}+\ldots)(1-z^{23})(1-z^{24})\ldots
$$
Видно, что при умножении первой скобки на $(1-z^{23})(1-z^{24})\ldots$ будут меняться лишь коэффициенты при степенях $z$, больших, чем ${22}$. Коэффициенты же при степенях $z$, меньших или равных ${22}$, меняться уже не будут --- произойдет, как говорят, стабилизация коэффициентов в этом произведении. Эйлер заметил, что после стабилизации коэффициенты при этих степенях оказываются равными $0$, $1$ или $-1$, причем коэффициенты $1$ и $-1$ попарно чередуются: после двух минус единиц идут две единицы и так далее. После долгих экспериментов Эйлер установил следующее правило чередования этих коэффициентов:
\begin{equation}
\label{eq:Euler_Pent_numbers}
Q(z)=1+\sum\limits_{d=1}^{+\infty}(-1)^d\bigl(z^{\frac{3d^2-d}{2}}+z^{\frac{3d^2+d}{2}}\bigr).
\end{equation}
Числа
$$
\omega(d):=\dfrac{3d^2-d}{2}=\sum\limits_{i=0}^{d-1}(3i+1)\qquad \text{и}\qquad \omega(-d)=\dfrac{3d^2+d}{2},
\qquad d=1,2,\ldots
$$
в этой формуле носят название \emph{пентагональных чисел,} так как они описывают вложенные друг в друга пятиугольники, построенные на $1$, $1+4=5$, $1+4+7=12$, $1+4+7+10=22$ и так далее точках.

Комбинаторно формула (\ref{eq:Euler_Pent_numbers}) была доказана лишь в 1881 году американским математиком Фабианом Франклином. Мы приведем здесь это доказательство --- отчасти ввиду его красоты, а отчасти для того, чтобы еще раз продемонстрировать полезность использования диаграмм Ферре при доказательстве утверждений, связанных с разбиениями чисел.

\mysubitem Прежде всего заметим, что $Q(z)$ очень похожа на функцию
$$
(1+z)(1+z^2)(1+z^3)\ldots,
$$
описывающую разбиение числа $n$ на \emph{различные} слагаемые (части). Однако, в отличие от этой функции, в $Q(z)$ любое слагаемое, получающееся после перемножения скобок, может входить как со знаком плюс, так и со знаком минус. Давайте поймем, когда какой знак получается. 

Очевидно, что знак плюс получается в случае, когда нетривиальных (то есть отличных от единицы) сомножителей в произведении четное число. В случае нечетного числа таких сомножителей мы получаем знак минус. С точки зрения разбиения числа $n$ на части это можно трактовать следующим образом. Если $n$ разбивается на четное число частей (например, $n=12=5+4+2+1$), то коэффициент при $z^n$ имеет знак плюс (для приведенного выше примера имеем $(-z^5)(-z^4)(-z^2)(-z^1)=z^{12}$). Если же $n$ разбивается на нечетное число частей, то коэффициент при $z^n$ имеет знак минус (так, для разбиения $n=12=6+4+2$ получаем $(-z)^6(-z)^4(-z)^2=-z^{12}$). 

Для подсчета общего количества таких разбиений мы складываем коэффициенты при одинаковых степенях $z$. Тогда равенство нулю коэффициента при $z^n$ в функции $Q(z)$ означает, что количество разбиений заданного числа $n$ на четное и нечетное число частей совпадает. Иными словами, теорема Эйлера (\ref{eq:Euler_Pent_numbers}) утверждает, что почти всегда (то есть почти для любых $n$) количество разбиений $n$ на четное число частей совпадает с количеством разбиений $n$ на нечетное число частей. При этом, однако, существуют исключительные числа $n$, а именно, пентагональные числа $n=\omega(d)$ и $n=\omega(-d)$, для которых количество четных разбиений на единицу отличается от количества нечетных разбиений. 

Все, что нам осталось --- это строго доказать все эти утверждения.

\mysubitem Рассмотрим для этого диаграмму Ферре любого разбиения числа $n$ на различное число частей:
$$
\begin{array}{ccccccc}
 \bullet & \bullet & \bullet & \bullet & \bullet & \bullet & \bullet \\
 \bullet & \bullet & \bullet & \bullet & \bullet & \bullet & \\
 \bullet & \bullet & \bullet & \bullet & \bullet & & \\
 \bullet & \bullet & \bullet & & & & \\
 \bullet & \bullet & &  &   &   &
\end{array}
$$
Заметим, что любая такая диаграмма состоит из некоторого количества поставленных друг на друга трапеций (на рисунке имеем две таких трапеции). Обозначим через $l$ длину самой нижней строчки диаграммы Ферре (то есть $l$ есть наименьшая часть разбиения числа $n$), а через $d$ --- длину ее ``верхней диагонали'', то есть количество строк в самой верхней трапеции диаграммы Ферре. Для диаграммы Ферре, представленной на рисунке, $l=2$, $d=3$.

Разобъем теперь все множество таких диаграмм Ферре на блоки в зависимости от количества входящих в них трапеций, а также в зависимости от конкретных значений параметров $l$ и $d$. В первый блок включим все диаграммы Ферре, состоящие из двух и более трапеций, у которых $d\geq l$, а также диаграммы Ферре, состоящие из одной трапеции, у которой $d>l$. К этому блоку принадлежит диаграмма Ферре, отвечающая приведенному выше примеру разбиения числа $n=23=7+6+5+3+2$ на $k=5$ различных частей, равных $7$, $6$, $5$, $3$ и $2$. Еще один пример --- это диаграмма Ферре 
$$
\begin{array}{ccccc}
 \bullet & \bullet & \bullet & \bullet & \bullet \\
 \bullet & \bullet & \bullet & \bullet &   \\
 \bullet & \bullet & \bullet &   &   \\
 \bullet & \bullet &   & &
\end{array}
$$
отвечающая разбиению числа $n=13$ вида $n=13=5+4+3+2$.

Во второй блок включим диаграммы, состоящие из не менее чем двух трапеций, у которых $d<l$, а также диаграммы, состоящие из одной трапеции, у которых $d<l-1$. 

Наконец, в третий блок включим диаграммы Ферре для двух оставшихся типов разбиений, а именно, диаграммы, состоящие из одной трапеции, у которых $d=l$ или $d=l-1$. 

Заметим теперь, что любую диаграмму, принадлежащую к первому блоку, можно перевести в диаграмму, принадлежащую ко второму блоку, следующим преобразованием. Возьмем диаграмму Ферре из первого блока, отрежем от этой диаграммы нижнюю строку и ``приклеем'' ее к верхней трапеции:
$$
\begin{array}{ccccccc}
 \bullet & \bullet & \bullet & \bullet & \bullet & \bullet & \bullet \\
 \bullet & \bullet & \bullet & \bullet & \bullet & \bullet & \\
 \bullet & \bullet & \bullet & \bullet & \bullet & & \\
 \bullet & \bullet & \bullet & & & & \\
 \bullet & \bullet & &  &   &   &
\end{array}\qquad \longmapsto \qquad
\begin{array}{cccccccc}
 \bullet & \bullet & \bullet & \bullet & \bullet & \bullet & \bullet & \bullet \\
 \bullet & \bullet & \bullet & \bullet & \bullet & \bullet & \bullet & \\
 \bullet & \bullet & \bullet & \bullet & \bullet & & & \\
 \bullet & \bullet & \bullet & & & & & 
\end{array}
$$
Еще один пример:
$$
\begin{array}{ccccc}
 \bullet & \bullet & \bullet & \bullet & \bullet \\
 \bullet & \bullet & \bullet & \bullet &   \\
 \bullet & \bullet & \bullet &   &   \\
 \bullet & \bullet &   & &
\end{array}\qquad \longmapsto \qquad
\begin{array}{cccccc}
 \bullet & \bullet & \bullet & \bullet & \bullet & \bullet  \\
 \bullet & \bullet & \bullet & \bullet & \bullet &  \\
 \bullet & \bullet & \bullet &  &  & \\
\end{array}
$$
Полученные в результате такого преобразования диаграммы Ферре принадлежат, очевидно, второму блоку. Обратно, беря любую диаграмму Ферре из второго блока, отрезая от нее верхнюю диагональ и приклеивая ее под нижней строкой, мы получаем диаграмму Ферре, принадлежащую к первому блоку. Тем самым мы показали, что количество разбиений заданного числа $n$, принадлежащих к первому блоку, в точности совпадает с количеством разбиений $n$, принадлежащих ко второму блоку. 

Заметим теперь, что в результате любого из таких преобразований четность разбиения числа $n$ меняется на противоположную. Так, в первом примере разбиение $n=23=7+6+5+3+2$, состоящее из нечетного числа различных слагаемых, превращается в разбиение $n=23=8+7+5+3$, содержащее четное число различных слагаемых. Как следствие, отвечающие этим парам разбиений слагаемые в $Q(z)$ взаимно сокращаются.

Перейдем теперь к диаграммам Ферре из третьего блока, то есть к диаграммам вида
$$
\begin{array}{ccccc}
 \bullet & \bullet & \bullet & \bullet & \bullet \\
 \bullet & \bullet & \bullet & \bullet &   \\
 \bullet & \bullet & \bullet &   &   \\
 \end{array}\qquad \text{или}\qquad
 \begin{array}{cccccc}
 \bullet & \bullet & \bullet & \bullet & \bullet &\bullet \\
 \bullet & \bullet & \bullet & \bullet & \bullet &  \\
 \bullet & \bullet & \bullet & \bullet & &  \\
 \end{array}
$$
Эти диаграммы характеризуются тем, что они не допускают описанных выше преобразований. От них нельзя отрезать нижнюю строку и приклеить ее справа от трапеции. Невозможно также отрезать верхнюю диагональ и приклеить ее под нижней строкой диаграммы. Иными словами, эти диаграммы не допускают парных им диаграмм, описывающих разбиение заданного числа с противоположной четностью.

Подсчитаем количество точек в этих диаграммах. В диаграммах, состоящих из одной трапеции, у которых $d=l$, количество точек равно
$$
l+(l+1)+\ldots+(l+(d-1))=l+(l+1)+\ldots+(2l-1)=d+(d+1)+\ldots+(2d-1)=d\cdot \dfrac{3d-1}{2}.
$$
В диаграммах, состоящих из одной трапеции, для которых выполнено равенство $d=l-1$, имеем
$$
l+(l+1)+\ldots+(l+(d-1))=l+(l+1)+\ldots+(2l-2)=d+(d+1)+\ldots+2d=d\cdot \dfrac{3d+1}{2}.
$$
Следовательно, только числа $n(d)=d\cdot (3d\pm 1)/2$ допускают разбиения указанного вида
$$
n(d)=d+(d+1)+\ldots+(2d-1)\qquad \text{или}\qquad n(d)=d+(d+1)+\ldots+2d,
$$
причем для любого такого $n(d)$ соответствующая этому разбиению диаграмма Ферре единственна. 

Как следствие, в случае $n=n(d)$ и $d=2m$ (т.е. четного $d$) количество разбиений $n$ на четное число частей будет на единицу больше количества разбиений этого же числа на нечетное число частей. Поэтому соответствующий этому $n(d)$ коэффициент при $z^{n(d)}$ в разложении $Q(z)$ по степеням $z$ будет равен плюс единице. В случае $n=n(d)$ и $d=2m+1$ (т.е. нечетного $d$) количество разбиений $n$ на нечетное число частей будет на единицу больше количества разбиений на четное число частей. Это приводит к тому, что коэффициент при $z^{n(d)}$ в разложении $Q(z)$ будет равен минус единице. Наконец, в случае $n\neq n(d)$ количество разбиений $n$ на четное число частей будет совпадать с количеством разбиений $n$ на нечетное число частей. Как следствие, для всех таких $n$ соответствующие им степени $z^n$ в функции $Q(z)$ сокращаются. Теорема доказана.

\mysubitem Формула (\ref{eq:Euler_Pent_numbers}) позволяет получить довольно удобное рекуррентное соотношение для чисел $p(n)$. Действительно, производящая функция $f(z)$ для этих чисел равна
$$
f(z)=\dfrac{1}{Q(z)}\qquad \Longleftrightarrow \qquad f(z)\cdot Q(z)=1,
$$
$$
f(z)=p(0)+p(1)z+p(2)z^2+\ldots+p(n)z^n+\ldots,
\qquad
Q(z)=1-z-z^2+z^5+z^7-z^{12}-z^{15}+z^{22}+\ldots
$$
Перемножая теперь эти ряды и приравнивая коэффициенты при одинаковых степенях $z$, получаем следующее рекуррентное соотношение для чисел $p(n)$:
$$
p(n)=p(n-1)+p(n-2)-p(n-5)-p(n-7)+p(n-12)+p(n-15)-p(n-22)-\ldots
$$
Пользуясь им, можно достаточно быстро вычислять значения $p(n)$ для не слишком больших значений $n$.


\section*{Упражнения}

\begin{exerc} \label{exerc:comb_ev_req_part}
Доказать с помощью формулы (\ref{eq:eq_p_kn_p_n}) рекуррентное соотношение  (\ref{eq:eq_p_k_p_n_m_k}) для чисел $p_k(n)$.
\end{exerc}

\begin{exerc} \label{exerc:diagr_techn_1}
С использованием диаграмм Ферре показать, что количество разбиений числа $2n+m$ на ровно $n+m$ слагаемых одинаково при любом $m\geq 0$. Сосчитать это количество разбиений.
\end{exerc}

\begin{exerc}
С использованием диаграмм Ферре показать, что количество разбиений четного числа $n$ на четные слагаемые равно количеству разбиений, в котором любое из чисел (т.е. частей разбиений) входит четное число раз.
\end{exerc}

\begin{exerc}
С использованием диаграмм Ферре показать, что  количество разбиений числа $n-m$ ровно на $(k-1)$ частей, любая из которых меньше или равна $m$, равно количеству разбиений числа $n-k$ ровно на $(m-1)$ частей, любая из которых
меньше или равна $k$.
\end{exerc}

\begin{exerc}
Доказать, что $p(1)+p(2)+\dots+p(n) < p(2n)$ при $n \geq 1$.
\end{exerc}

\begin{exerc}
Доказать, что $p^2(n) < p(n^2+2n)$ при $n \geq 1$.
\end{exerc}


\begin{exerc}
Доказать, что количество разбиений числа $n$, в которых две наибольшие части равны, рассчитывается по формуле $p(n)-p(n-1)$.
\end{exerc}


\begin{exerc}
Выразить через $p(n)$ количество разбиений, в которых равны три наибольшие части.
\end{exerc}


\begin{exerc} \label{exerc:diagr_techn_4}
С использованием диаграмм Ферре показать, что количество разбиений числа $n$ ровно на $k$ частей равно количеству разбиений числа $n+k(k-1)/2$ ровно на $k$ неравных частей.
\end{exerc}

\begin{exerc}
Несложно убедиться, что $p_2(n)=\lfloor n/2\rfloor$, где $\lfloor k \rfloor$ --- ближайшее целое к числу $k$, меньшее или равное $k$. Доказать этот результат с помощью производящих функций.
\end{exerc}

\begin{exerc}
С использованием производящих функций доказать, что $p_3(n)=\{n^2/12\}$, где $\{ k \}$ --- ближайшее целое к числу $k$.
\end{exerc}

\begin{exerc}
Показать из комбинаторных соображений, что при фиксированном $k$ и $n\to\infty$ 
$$
p_k(n)\sim \dfrac{n^{k-1}}{k!\,(k-1)!}.
$$
\end{exerc}

\pointing Использовать сравнение числа $p_k(n)$ с количеством решений уравнения
$$
x_1+x_2+\ldots+x_k=n, \qquad x_i\geq 1
$$
с учетом порядка слагаемых, а также результат упражнения \ref{exerc:diagr_techn_4}.


\begin{exerc}
Пусть $p(n;k,m-k)$ есть количество разбиений $n$ на $\leq k$ слагаемых, каждое из которых меньше или равно $m-k$.
Показать, что эти числа обладают следующими свойствами:
$$
p(n;k,m-k)=0,\quad \mbox{если} \quad n>k\cdot (m-k);
$$
$$
p(n;k,m-k)=1,\quad \mbox{если} \quad n=k\cdot (m-k);
$$
$$
p(n;k,m-k)=p(n;m-k,k)\qquad \mbox{(свойство симметрии чисел} \,\,p(n;k,m-k)).
$$
\end{exerc}

\begin{exerc}
Введем следующие обозначения:
$$
{m\choose k}_q:=\sum\limits_{n=0}^{+\infty}p(n;k,m-k)\,q^n.
$$
Описанные в предыдущем упражнении свойства чисел $p(n;k,m-k)$ означают, что это есть полином степени $k\cdot (m-k)$. Далее, если положить по определению, что
$$
p(0;k,m-k)=1 \qquad \forall \,k,m-k\geq 0;
$$
$$
p(n;k,0)=p(n;0,m-k)=0 \qquad \forall \,n\geq 0,
$$
то, как несложно убедиться,
$$
{m\choose 0}_q={m\choose m}_q=1.
$$
Наконец, из свойства симметрии чисел $p(n;k,m-k)$ следует, что
$$
{m\choose k}_q={m\choose m-k}_q.
$$
Видно, что эти свойства очень похожи на свойства обычных биномиальных коэффициентов. Поэтому они называются $q$-биномиальными коэффициентами или многочленами Гаусса. Доказать, что
$$
{m\choose k}_q={m-1\choose k}_q+q^{m-k}{m-1\choose k-1}_q=q^{k}{m-1\choose k}_q+{m-1\choose k-1}_q.
$$
Построить с помощью этого соотношения т.н. $q$-треугольник Паскаля.
\end{exerc}

\begin{exerc}
С использованием результатов предыдущих двух упражнений определить, сколько существует диаграмм Ферре, которые можно разместить в прямоугольнике $k\cdot(m-k)$.
\end{exerc}

\begin{exerc}
Получить ответ на предыдущее упражнение с помощью комбинаторных рассуждений. 
\end{exerc}





 
 
\section*{Решение упражнений}

\begin{sol_exerc}
Предположим вначале, что $1\leq k\leq n/2$. Соотношение (\ref{eq:eq_p_kn_p_n}) для этого случая можно переписать так:
$$
p_k(n)=\sum\limits_{r=1}^{k}p_r(n-k)=\sum\limits_{r=1}^{k-1}p_r(n-k)+p_k(n-k).
$$
Но согласно тому же соотношению (\ref{eq:eq_p_kn_p_n}) число
$$
p_{k-1}(n-1)=\sum\limits_{r=1}^{k-1}p_r((n-1)-(k-1))=\sum\limits_{r=1}^{k-1}p_r(n-k).
$$
Объединяя два последних равенства, мы и получаем нужный результат --- формулу (\ref{eq:eq_p_k_p_n_m_k}). 

Для доказательства этой формулы в случае $k>n/2$ следует заметить, что при таком значении параметра $k$ второе слагаемое в этой формуле равно нулю:
$$
p_k(n)=0\quad \text{при $k>n$}\quad \Longrightarrow \quad \text{при $k>n/2$ значение $n-k<n/2$, и потому}\quad p_k(n-k)=0. 
$$ 
При этом
$$
p_k(n)=\sum\limits_{r=1}^{n-k} p_r(n-k)=\sum\limits_{r=1}^{(n-1)-(k-1)} p_r((n-1)-(k-1))=p_{k-1}(n-1).
$$
\end{sol_exerc}

\begin{sol_exerc}
Диаграмма Ферре любого разбиения числа $2n+m$ на $n+m$ слагаемых содержит левый столбец, состоящий из $n+m$ точек. Удалив эти точки, мы получим некоторое разбиение числа $n$ на заранее не определенное количество слагаемых, количество которых равно $p(n)$.

Пример описанного нами преобразования для $n=6, m=2$ указан ниже.
$$
\begin{array}{ccc}
 \bullet & \bullet & \bullet \\
 \bullet & \bullet & \bullet \\
 \bullet & \bullet & \\
 \bullet & \bullet & \\
 \bullet &  &  \\
 \bullet &  &  \\
 \bullet &  &  \\
 \bullet &  &  
\end{array}
 \qquad \longmapsto \qquad
 \begin{array}{ccc}
 \bullet & \bullet \\
 \bullet & \bullet \\
 \bullet & \\
 \bullet & \\
 \circ & \\
 \circ &  \\
 \circ &  \\
 \circ &  
 \end{array}
 $$
\end{sol_exerc}

\begin{sol_exerc}
Действительно, указанным в упражнении разбиениям соответствуют двойственные диаграммы Ферре. Следовательно, количество таких разбиений одинаково для любого $n$.
\end{sol_exerc}

\begin{sol_exerc}
Последовательность преобразований, доказывающих сформулированное в упражнении утверждение, показана на рисунке для $m=4, k=7$: 
$$
\begin{array}{cccc}
 & & & \\
 \bullet & \bullet & \bullet &\circ \\
 \bullet & \bullet & \bullet & \\
 \bullet & \bullet & &\\
 \bullet & \bullet & &\\
 \bullet &  &  &\\
 \bullet &  &  &\\
\end{array}
\quad \Longleftrightarrow \quad
\begin{array}{cccc}
 \bullet & \bullet & \bullet & \bullet \\
 \bullet & \bullet & \bullet & \\
 \bullet & \bullet & \bullet & \\
 \bullet & \bullet & &\\
 \bullet & \bullet & &\\
 \bullet &  &  &\\
 \bullet &  &  &\\
\end{array}
\quad \Longleftrightarrow \quad
\begin{array}{ccc}
   \bullet & \bullet & \bullet \\
   \bullet & \bullet & \\
   \bullet & \bullet & \\
   \bullet & &\\
   \bullet & &\\
   \circ &  &\\
   \circ &  &\\
\end{array}
\quad \Longleftrightarrow \quad
\begin{array}{ccccccc}
   \bullet & \bullet & \bullet & \bullet & \bullet & \circ & \circ\\
   \bullet & \bullet & \bullet &  & \\
   \bullet & & & &\\
   & & & & \\
   & & & &\\
   & & & &\\
   & & & &\\   
\end{array}
$$
К диаграмме для разбиения числа $n-m$ на $k-1$ слагаемое, каждое из которых не превосходит $m$, добавим вначале строку размером $m$, затем удалим левый столбец размером $k,$ и, наконец, рассмотрим двойственную к получившейся диаграмме Ферре. В результате получим диаграмму, описывающую разбиение числа $n-k$ на $m-1$ слагаемое, каждое из которых не превосходит $k$. Осталось заметить, что все эти преобразования являются обратимыми.
\end{sol_exerc}


\begin{sol_exerc}
Добавив к диаграмме для разбиения числа $i \in [n]$ строку из $2n-i$ точек, мы получим диаграмму Ферре, описывающую разбиение числа $2n$. Исходная диаграмма может быть после этого восстановлена однозначно, откуда $p(1)+\dots+p(n) \leq p(2n).$ Однако некоторые разбиения числа $2n$ (например, разбиение, состоящее из единственного слагаемого) таким образом не получить, что делает неравенство строгим.
\end{sol_exerc}

\begin{sol_exerc}
Рассмотрим диаграммы разбиений числа $n^2+2n$, имеющие следующий вид:
$$
\begin{array}{cccccccc}
 \circ & \circ & \circ &\bullet  &\bullet &\bullet \\
 \circ & \circ & \circ & & & \\
 \circ & \circ & \circ & & & \\
 \bullet & \bullet & & & & \\
 \bullet &  & & & &\\
\end{array}
$$
В левом верхнем углу подобного рода диаграммы имеется квадрат $n \cdot n$ (заполнен светлыми точками). При удалении этого квадрата диаграмма распадается на две диаграммы, каждая из которых описывает некоторое  разбиение числа $n$. Иными словами, любая диаграмма Ферре описанного выше вида отвечает некоторой паре разбиений числа $n$. Таких пар, согласно правилу произведения, существует $p(n)^2$ штук. Наоборот, любой паре разбиений можно сопоставить описанную выше диаграмму Ферре. В то же время, не каждое разбиение числа $n^2+2n$ имеет указанный вид, поэтому $p(n)^2 < p(n^2+2n)$.

\end{sol_exerc}

\begin{sol_exerc}
Удалим из диаграммы Ферре, описывающей разбиение, две наибольшие части которого не равны друг другу, крайнюю правую точку в верхней строке диаграммы Ферре. В результате получим некоторое разбиение числа $(n-1)$. Следовательно, количество такого рода разбиений в точности равно $p(n-1)$, а количество $q(n)$ разбиений, у которых две наибольшие части равны, выражается по формуле $q(n)=p(n)-p(n-1)$.
\end{sol_exerc}

\begin{sol_exerc}
Рассмотрим диаграмму Ферре произвольного разбиения, в котором две наибольшие части равны, а третья часть по величине строго их меньше. Удаляя по точке из верхних двух строк такой диаграммы, мы получим диаграмму Ферре произвольного разбиения, в котором равны две наибольшие его части. Их количество, согласно предыдущему упражнению, равно $q(n-2)=p(n-2)-p(n-1)$. Следовательно, ответ на задачу дается формулой
$$
q(n)-q(n-2)=p(n)-p(n-1)-p(n-2)+p(n-3).
$$
\end{sol_exerc}

\begin{sol_exerc}
Для доказательства достаточно к $i$-й строчке диаграммы Ферре, описывающей разбиение числа $n$ на $k$ слагаемых, добавить $k-i$ точек: 
$$
\begin{array}{cccccccc}
 \bullet & \bullet & \bullet &  & & \\
 \bullet & \bullet & \bullet & & & \\
 \bullet & \bullet & \bullet & & & \\
 \bullet & \bullet & & & & \\
 \bullet & \bullet & & & &\\
\end{array}
\qquad \longmapsto \qquad
\begin{array}{cccccccc}
 \bullet & \bullet & \bullet &\bullet  &\bullet &\bullet & \bullet \\
 \bullet & \bullet & \bullet & \bullet& \bullet& \bullet &\\
 \bullet & \bullet & \bullet & \bullet&\bullet & &\\
 \bullet & \bullet & \bullet & & & & \\
 \bullet & \bullet & & & & &\\
\end{array}
$$
Ясно, что такое преобразование обратимо.
\end{sol_exerc}

\begin{sol_exerc}
Производящая функция для последовательности $\{p_2(n)\}$ равна
$$
\frac{z^2}{(1-z)(1-z^2)} = \frac{1}{4(1+z)}-\frac{3}{4(1-z)} + \frac{1}{2(1-z)^2}.
$$
Следовательно,
$$
p_2(n)=\dfrac{-3}{4}+\dfrac{n+1}{2}+\dfrac{(-1)^n}{4}\qquad \Longleftarrow \qquad p_2(n)-\dfrac{n}{2}=\dfrac{-1}{4}+\dfrac{(-1)^n},{4}
$$
откуда и следует требуемое равенство.
\end{sol_exerc}

\begin{sol_exerc}
Производящая функция для последовательности $\{p_3(n)\}$ записывается в виде
$$
\frac{z^3}{(1-z)(1-z^2)(1-z^3)} = \dfrac{1}{6(1-z)^3}-\dfrac{1}{4(1-z)^2}-\dfrac{1}{72(1-z)}-\dfrac{1}{8(1+z)}+
\dfrac{2+z}{9(1+z+z^2)}.
$$
Коэффициент при $z^{n}$ можно записать как 
$$
\dfrac{(n+2)(n+1)}{12}-\dfrac{n+1}{4}-\dfrac{1}{72}+\dfrac{1}{8}(-1)^{n+1}+\dfrac{1}{9}(\omega^n+\omega^{2n})=
\dfrac{n^2-1}{12}-\dfrac{1}{72}+\dfrac{1}{8}(-1)^{n+1}+\dfrac{1}{9}(\omega^n+\omega^{2n}),
$$ 
где $\omega=\exp(2\pi i/3)$. Следовательно,
$$
\Bigl|p_3(n)-\dfrac{n^2}{12}\Bigr|\leq \dfrac{7}{72}+\dfrac{1}{8}+\dfrac{2}{9}<\dfrac{1}{2},
$$
что и следовало доказать.
\end{sol_exerc}

\begin{sol_exerc}
С одной стороны, $p_k(n)$ есть количество решений уравнения в целых числах вида
$$
x_1+x_2+\ldots+x_k=n,
$$
$$
x_1\geq x_2\geq\ldots\geq x_k\geq 1.
$$
Следовательно, $k!\cdot p_k(n)$ есть количество решений того же уравнения с учетом порядка слагаемых. Однако не все такие решения обязательно будут различными (например, $1+1=1+1$), поэтому $k!\cdot p_k(n)$ больше или равно количеству различных решений такого уравнения с учетом порядка, равного $\BCf{n-1}{k-1}$. Таким образом,
$$
k!\cdot p_k(n)\geq\BCf{n-1}{k-1}.
$$
С другой стороны, мы знаем (смотри упражнение \ref{exerc:diagr_techn_4}), что количество разбиений числа $n$ ровно на $k$ слагаемых равно количеству способов разбить число $n+k(k-1)/2$ ровно на $k$ неравных частей, то есть количеству решений уравнения вида
$$
y_1+y_2+\ldots+y_k=n+\dfrac{n(n-1)}{2},
$$
$$
y_1\geq y_2\geq\ldots\geq y_k\geq 1,
$$
в котором все $y_i$ различны. Количество таких разбиений, умноженное на $k!$, в свою очередь, заведомо меньше количества решений уравнения $y_1+\ldots+y_k=n$ с учетом порядка следования слагаемых, так как последние, в частности, содержат не обязательно различные слагаемые. Поэтому
$$
k!\cdot p_k(n)\leq\BCf{n+k(k-1)/2-1}{k-1}.
$$
Осталось заметить, что обе оценки имеют порядок роста $\frac{n^{k-1}}{k!(k-1)!}$, а значит, такой же порядок роста имеют и сами числа $p_k(n)$.
\end{sol_exerc}

\begin{sol_exerc}
Первые два свойства очевидны. Для доказательства третьего свойства следует применить операцию сопряжения к диаграммам Ферре для соответствующих разбиений.
\end{sol_exerc}

\begin{sol_exerc}
Все разбиения $n$ на не более чем  $k$ слагаемых, каждое из которых не больше $m-k$, изображаются диаграммами Ферре, представляющими собой прямоугольник, состоящий максимум из $k$ строк и $(m-k)$ столбцов. Нам будет удобнее рассматривать двойственные к ним диаграммы Ферре. Все такие диаграммы можно разбить на два блока в зависимости от того, сколько точек имеется в верхней ее строке. В первых блок поместим диаграммы, первая строка которых содержит ровно $k$ точек. Отрезая эту строку, получаем произвольную диаграмму, имеющую не более $(m-k-1)$ строк и не более $k$ столбцов. Количество таких диаграмм равно $p(n-k;k,m-k-1)$. Все диаграммы второго блока помещаются в прямоугольник со сторонами $(k-1)$ и $(m-k)$, поэтому их количество равно $p(n;k-1,m-k)$. Таким образом,
$$
p(n;k,m-k)=p(n-k;k,m-k-1)+p(n;k-1,m-k).
$$
Домножим теперь это равенство на $q^n$ и просуммируем его по $n$:
$$
{m\choose k}_q=\sum\limits_{n=0}^{+\infty}p(n-k;k,m-k-1)\,q^{n-k}\,q^k+\sum\limits_{n=0}^{+\infty}p(n;k-1,m-k)\,q^n=
q^{k}{m-1\choose k}_q+{m-1\choose k-1}_q.
$$
\end{sol_exerc}

\begin{sol_exerc}
При $q=1$ числа ${m\choose k}_q$ равны количеству диаграмм Ферре, которые можно разместить в прямоугольнике $k \cdot (m-k)$. В то же время, используя результат предыдущих упражнений, мы можем записать, что 
$$
{m\choose k}_1= {m-1\choose k}_1+{m-1\choose k-1}_1; \qquad {m\choose 0}_1 = 1; \qquad {m\choose m}_1 = 1.
$$
Это рекуррентное соотношение в точности повторяет рекуррентное соотношение для биномиальных коэффициентов. А значит, количество таких диаграмм равно ${m\choose k}.$
\end{sol_exerc}

\begin{sol_exerc}
Каждой диаграмме Ферре, вписанной в прямоугольник $k\cdot (m-k),$ можно взаимно однозначно сопоставить путь,  обходящий её контур (рис.\ref{fig:m_k_partitions}) и идущий из левого нижнего в правый верхний угол. Такой путь состоит из $m$ шагов, ровно $k$ их которых — шаги вверх, а $m-k$ — шаги вправо. Количество таких путей равно количеству битовых строк длины $m$, содержащих $k$ единиц, то есть равно $\BCf{m}{k}$.

\begin{figure}[h]
\centering
  \includegraphics[scale=0.25]{pics/m_k_partitions.eps}
\caption{}
\label{fig:m_k_partitions}
\end{figure}
\end{sol_exerc}



\section{Композиция экспоненциальных производящих функций}

\myitem Вернемся к операции композиции производящих функций. Во втором параграфе данной главы мы ввели операцию композиции  $h(z)=g(f(z))$ обыкновенных производящих функций $f(z)$ и $g(z)=1/(1-z)$, объяснили ее комбинаторный смысл, а также показали, что такая операция определена только лишь в случае, когда коэффициент $a_0$ при $z^0=1$ у функции $f(z)$ равен нулю. Цель данного параграфа --- ввести понятие композиции для экспоненциальных производящих функций и объяснить ее комбинаторный смысл.

\mysubitem Пусть 
$$
F(z)=a_0+a_1\dfrac{z^1}{1!}+a_2\dfrac{z^2}{2!}+\ldots+a_n\dfrac{z^n}{n!}+\ldots
$$
есть некоторая экспоненциальная производящая функция, коэффициенты $a_n$ которой описывают количество способов совершить какое-то комбинаторное действие над $n$-элементным множеством $U$. Тогда, как мы знаем, произведению $k$ экземпляров этой функции $F(z)$ отвечает следующее комбинаторное действие: разбить $n$-множество на \emph{фиксированное} число $k$ \emph{различимых, возможно пустых} блоков, а затем совершить над элементами каждого из $m=1,\ldots,k$ блоков размером $i_m$ комбинаторное действие $a_{i_m}$ способами. 

На практике, однако, часто встречаются ситуации, когда количество $k$ блоков заранее не фиксировано, а сами блоки разбиения $n$-элементного множества, во-первых, не являются различимыми, а во-вторых, не могут быть пустыми. 

\begin{examp}\label{examp:group_2_5_persons}
Предположим, что мы хотим разбить $n$ человек на пары или на пятерки. Сколькими способами можно это сделать? 
\end{examp}

\decis Сразу заметим, что требование о непустоте получающихся блоков является существенным --- в противном случае количество разбиений становится бесконечным, так как наряду с ограниченным количеством блоков, содержащих ненулевое число людей, разбиение может содержать и ничем не ограниченное количество пустых блоков.

Далее, понятно, что существует единственный способ совершить подобные комбинаторные действия в случае $n=2$ и $n=5$. Четырех человек мы можем разбить на такие группы тремя способами --- они будут отличаться друг от друга лишь тем, попадают ли в одну и ту же группу два заранее выбранных человека или нет. Оказывается, что сформировать подобные группы, например, из десяти человек можно уже $1071$ различным способом, отличающимся как составом участников, так и количеством получившихся групп. 

Попытаемся решить данную задачу в общем виде, используя комбинаторный смысл операций с экспоненциальными (так как люди у нас различимы) производящими функциями. Введем для этого экспоненциальную производящую функцию вида
$$
F(z)=\dfrac{z^2}{2!}+\dfrac{z^5}{5!},
$$
описывающую количество способов объединить $n$ человек в одну единственную группу, состоящую из двух или из пяти человек. Если бы наши группы были бы различимыми, то количество способов разбиения $n$ человек ровно на $k$ блоков описывалось бы производящей функцией вида 
$$
G(z)=[F(z)]^k=\biggl(\dfrac{z^2}{2!}+\dfrac{z^5}{5!}\biggr)^k.
$$
В нашей задаче блоки являются неразличимыми. Довольно очевидно, как справиться с этой проблемой: так как разметить $k$ исходно неразличимых блоков мы можем $k!$ способами, то совершить обратное действие, то есть превратить различимые блоки в неразличимые, мы можем, поделив $[F(z)]^k$ на $k!$.  

Осталось разобраться с произвольностью $k$. Для этого достаточно вспомнить комбинаторный смысл сложения производящих функций. Именно, производящая функция вида
$$
H(z)=1+\dfrac{F(z)}{1!}+\dfrac{[F(z)]^2}{2!}+\ldots+\dfrac{[F(z)]^k}{k!}+\ldots
$$
как раз и описывает с формальной точки зрения следующие комбинаторные действия: разбить $n$-элементное множество на \emph{заранее не определенное} число $k$ \emph{неразличимых} блоков, а затем совершить над элементами каждого блока размером $i_m>0$ комбинаторное действие $a_{i_m}$ способами, где $a_{i_m}$ есть коэффициент при $z^{i_m}/i_m!$ у производящей функции $F(z)$. 

Если теперь вспомнить, что ряд вида
$$
1+\dfrac{z}{1!}+\dfrac{z^2}{2!}+\ldots+\dfrac{z^k}{k!}+\ldots=e^z,
$$
то экспоненциальную производящую функцию $H(z)$ можно трактовать как результат композиции двух экспоненциальных производящих функций --- функции $F(z)$ и функции $G(z)=e^z$:
$$
H(z)=c_0+c_1\dfrac{z^1}{1!}+c_2\dfrac{z^2}{2!}+\ldots+c_n\dfrac{z^n}{n!}+\ldots=\exp(F(z)).
$$

Таким образом, формально ответ к нашей задаче можно записать так:
$$
H(z)=\exp\biggl[\dfrac{z^2}{2!}+\dfrac{z^5}{5!}\biggr]=1+\biggl[\dfrac{z^2}{2!}+\dfrac{z^5}{5!}\biggr]+\dfrac{1}{2!}\biggl[\dfrac{z^2}{2!}+\dfrac{z^5}{5!}\biggr]^2+\ldots+\dfrac{1}{k!}\biggl[\dfrac{z^2}{2!}+\dfrac{z^5}{5!}\biggr]^k+\ldots
$$
При этом количество способов разбить $n$ человек на пары и пятерки определяется как коэффициент при $z^n/n!$ у функции $H(z)$. В частности, несложно убедиться, что первые несколько членов этого степенного ряда имеют следующий вид:
$$
H(z)=1+0\cdot z+1\cdot\dfrac{z^2}{2!}+3\cdot \dfrac{z^4}{4!}+1\cdot\dfrac{z^5}{5!}+15\cdot\dfrac{z^6}{6!}+21\cdot\dfrac{z^7}{7!}+
105\cdot\dfrac{z^8}{8!}+378\cdot\dfrac{z^9}{9!}+1071\cdot\dfrac{z^{10}}{10!}+\ldots
$$
Поэтому количество способов совершить описанные в задаче комбинаторные действия с десятью людьми действительно равно $1071$.

\begin{rem}  Как и в случае композиции обыкновенных производящих функций, в приведенном выше определении есть одна тонкость. Описанная выше операция композиции экспоненциальных производящих функций связана с разбиением $n$-множества \emph{на заранее не фиксированное} число $k$ блоков. Именно поэтому мы сразу же потребовали, чтобы блоки в разбиении не были пустыми --- в противном случае количество разбиений на блоки сразу бы стало бесконечным. 

С формальной точки зрения это требование можно обеспечить, положив нулю коэффициент $a_0$ в производящей функции $F(z)$. Условие $a_0=0$, запрещающее с комбинаторной точки зрения совершать какие-либо комбинаторные действия над пустыми множествами, тем самым ограничивает при любом фиксированном $n$ общее количество комбинаторных действий, совершаемых над $n$-элементным множеством. С вычислительной же точки зрения условие $a_0=0$ означает, что в выражении $[F(z)]^k/k!$ в случае $k>n$ останутся только степени $z$, большие $n$, то есть их можно не учитывать в процессе вычисления коэффициентов при $z^n/n!$ в формуле для $H(z)$. 
\end{rem}

\mysubitem Подводя итоги, мы можем сформулировать следующее утверждение.

\begin{theor}[Экспоненциальная формула] Пусть $a_n$ есть количество способов совершить какое-то комбинаторное действие над элементами $n$-элементного множества $U$, причем количество $a_0$ способов совершить это действие над пустым множеством равно нулю. Пусть $c_n$ есть количество способов разбить $n$-множество $U$ на \emph{заранее не фиксированное} число $k$ \emph{непустых неразличимых} блоков, а затем совершить над элементами любого такого блока размером $i_m$ комбинаторное действие $a_{i_m}$ способами. Тогда соответствующая этим $c_n$ экспоненциальная производящая функция 
$$
H(z)=c_0+c_1\dfrac{z^1}{1!}+c_2\dfrac{z^2}{2!}+\ldots+c_n\dfrac{z^n}{n!}+\ldots
$$ 
связана с экспоненциальной производящей функцией
$$
F(z)=a_1\dfrac{z^1}{1!}+a_2\dfrac{z^2}{2!}+\ldots+a_n\dfrac{z^n}{n!}+\ldots
$$
следующим формальным соотношением:
\begin{equation}
\label{eq:exp_formula}
H(z)=1+\dfrac{F(z)}{1!}+\dfrac{[F(z)]^2}{2!}+\ldots+\dfrac{[F(z)]^k}{k!}+\ldots=:\exp(F(z)).
\end{equation}
\end{theor}
Соотношение (\ref{eq:exp_formula}) носит название \emph{экспоненциальной формулы.}

\mysubitem Вернемся к примеру \ref{examp:group_2_5_persons}. По сути, мы в данном примере рассмотрели частный случай хорошо нам известной задачи о раскладке различимых предметов по ящикам. Напомним, что в более общих задачах такого рода мы вводили экспоненциальную производящую функцию 
$$
F(z)=a_0+a_1\dfrac{z^1}{1!}+a_2\dfrac{z^2}{2!}+\ldots+a_n\dfrac{z^n}{n!}+\ldots,
$$
коэффициенты $a_n$ которой имели следующий комбинаторный смысл: $a_n=1$, если мы можем положить $n$ различимых предметов в ящик, и $a_n=0$, если нам это делать запрещено. Для такой производящей функции $F(z)$ экспоненциальная формула (\ref{eq:exp_formula}) решает, очевидно, следующую задачу: подсчитать количество всевозможных способов раскладки $n$ различимых предметов по \emph{заранее не фиксированному} числу $k$ \emph{неразличимых} ящиков. При этом мы обязательно должны потребовать, чтобы коэффициент $a_0$ при $z^0$ у функции $F(z)$ всегда был равен нулю. С комбинаторной точки зрения это означает, что в любом из $k$ ящиков у нас должен находиться хотя бы один предмет. 

Важным частным случаем данной задачи является задача о раскладке $n$ различимых предметов по ящикам в случае, когда в каждый ящик мы можем складывать любое количество предметов, отличных от нуля. В этом случае все коэффициенты $a_n$, $n>0$, равны единице, а количество способов раскладки описывает производящая функция вида
$$
B(z):=\exp(\exp(z)-1)=B_0+B_1z+B_2\dfrac{z^2}{2!}+\ldots+B_n\dfrac{z^n}{n!}+\ldots
$$
Коэффициенты $B_n$ при $z^n/n!$ у этой функции есть не что иное, как числа Белла, описывающие количество способов разбиения $n$-элементного множества на непустые неупорядоченные блоки.



\mysubitem Напомним, что в первой главе из элементарных комбинаторных соображений нами было получено рекуррентное соотношение для вычисления чисел Белла $B_n$:
\begin{equation}
\label{eq:req_Bell_numbers}
B_{n+1}=\sum\limits_{i=0}^n \BCf{n}{i}B_i.
\end{equation}
Оказывается, что с помощью экспоненциальной формулы (\ref{eq:exp_formula}) мы можем достаточно просто получить подобного рода формулы и для произвольной функции $F(z)$. 

Продифференцируем для этого равенство $H(z)=\exp(F(z))$ по $z$:
$$
H'(z)=\exp(F(z))\cdot F'(z)=H(z)\cdot F'(z)\qquad \Longleftrightarrow 
$$
$$
c_1+c_2\dfrac{z}{1!}z+\ldots+c_{n+1}\dfrac{z^n}{n!}+\ldots=
\Bigl(c_0+c_1\dfrac{z}{1!}+\ldots+c_{n}\dfrac{z^n}{n!}+\ldots\Bigr)
\Bigl(a_1+a_2\dfrac{z}{1!}z+\ldots+a_{n+1}\dfrac{z^n}{n!}+\ldots\Bigr).
$$
Перемножая стоящие справа производящие функции, получаем рекуррентные соотношения для нахождения коэффициентов $c_n$ по числам $a_n$: 
\begin{equation}
\label{eq:comp_exp_gen_func_rec_c_n}
c_{n+1}=\sum\limits_{i=0}^n \BCf{n}{i}a_{i+1}c_{n-i}=\sum\limits_{i=0}^n \BCf{n}{i}c_ia_{n+1-i}.
\end{equation}
Подставляя, в частности, в эту формулу значения $a_n=1$ $\forall\,\,n>0$, мы из (\ref{eq:comp_exp_gen_func_rec_c_n}) получаем рекуррентное соотношение (\ref{eq:req_Bell_numbers}).

В дальнейшем нам понадобятся и обратные рекуррентные соотношения, позволяющие вычислять коэффициенты $a_n$ производящей функции $F(z)$ по известным коэффициентам $c_n$. Для получения таких соотношений достаточно выразить из формулы (\ref{eq:comp_exp_gen_func_rec_c_n}) коэффициенты $a_{n+1}$. В результате получаются равенства вида
\begin{equation}
\label{eq:comp_exp_gen_func_rec_a_n}
a_{n+1}=\dfrac{1}{c_0}\biggl[c_{n+1}-\sum\limits_{i=1}^n \BCf{n}{i}c_ia_{n+1-i}\biggr].
\end{equation}




\myitem Экспоненциальную формулу $H(z)=G(F(z))$, в которой функция $G(z)=\exp(z)$, достаточно легко обобщить на случай произвольной функции 
$$
G(z)=b_0+b_1\dfrac{z^1}{1!}+b_2\dfrac{z^2}{2!}+\ldots+b_n\dfrac{z^n}{n!}+\ldots
$$

\mysubitem Именно, предположим, что мы не просто хотим разбить $n$-множество $U$ на заранее не определенное число $k$ блоков, а еще и совершить над самими этими блоками какое-то другое комбинаторное действие $b_k$ способами. При фиксированном $k$ мы бы получили, что количество $c_n$ способов совершить все эти операции определялось бы  коэффициентом при $z^n/n!$ в произведении вида $b_k[F(z)]^k/k!$. В случае же, когда $k$ заранее не фиксировано, количество $c_n$ способов совершить эти действия определяется как коэффициент при $z^n/n!$ в разложении функции 
\begin{equation}
\label{eq:comp_formula}
b_0+b_1\dfrac{F(z)}{1!}+b_2\dfrac{[F(z)]^2}{2!}+\ldots+b_k\dfrac{[F(z)]^k}{k!}+\ldots=:G(F(z))
\end{equation}
по степеням $z$. 

Таким образом, мы можем сформулировать следующее 

\begin{defin} Композицией $H(z)=G(F(z))$ пары экспоненциальных производящий функций $F(z)$ и $G(z)$ называется экспоненциальная производящая функция
$$
H(z)=c_0+c_1\dfrac{z^1}{1!}+c_2\dfrac{z^2}{2!}+\ldots+c_n\dfrac{z^n}{n!}+\ldots,
$$
коэффициенты $c_n$ которой определяются как коэффициенты при $z^n/n!$ в разложении (\ref{eq:comp_formula}) по степеням $z$ и имеют следующий комбинаторный смысл: $c_n$ есть количество способов разбить $n$-элементное множество на \emph{заранее не определенное} число $k$ \emph{непустых неразличимых} блоков, совершить над элементами каждого блока размером $i_m$ первое комбинаторное действие $a_{i_m}$ числом способов, а затем совершить над самими этими блоками второе комбинаторное действие $b_k$ способами.
\end{defin}

\mysubitem При выводе экспоненциальной формулы (\ref{eq:exp_formula}) мы предполагали, что получающиеся в процессе разбиения блоки являются неразличимыми. Достаточно очевидно, как решать аналогичную задачу в случае, когда блоки являются различимыми --- в данном случае мы вместо функции $G(z)=\exp(z)$ должны рассматривать функцию вида $G(z)=1/(1-z)$. Действительно, согласно комбинаторному смыслу сложения и умножения экспоненциальных производящих функций, формула вида
$$
1+F(z)+F^2(z)+\ldots+F^k(z)+\ldots=\dfrac{1}{1-F(z)},\qquad \text{где}\qquad 
F(z)=a_1\dfrac{z^1}{1!}+a_2\dfrac{z^2}{2!}+\ldots+a_n\dfrac{z^n}{n!}+\ldots,
$$
описывает нам следующие комбинаторные действия: разбить $n$-элементное множество на \emph{заранее не фиксированное} число $k$ \emph{непустых различимых} блоков, а затем совершить над элементами любого такого блока размером $i_m$ комбинаторное действие $a_{i_m}$ способами. 

Эта же самая формула допускает, однако, и несколько иную комбинаторную интерпретацию. Действительно, вернемся к общей композиционной формуле (\ref{eq:comp_formula}) и положим в ней коэффициенты $b_k=k!$. С комбинаторной точки зрения это можно трактовать следующим образом: разбить $n$-элементное множество на \emph{заранее не фиксированное} число $k$ \emph{непустых неразличимых} блоков, совершить над элементами любого такого блока размером $i_m$ комбинаторное действие $a_{i_m}$ способами, а затем \emph{линейно упорядочить} полученные блоки. 

На практике довольно часто встречается также случай, когда коэффициенты $b_k=(k-1)!$ при всех $k>0$, $b_0=1$. С комбинаторной точки зрения такой выбор коэффициентов $b_k$ означает, что мы \emph{циклически} упорядочиваем блоки, получающиеся после разбиения $n$-множества $U$. Соответствующая этому случаю производящая функция $H(z)$ может быть записана в таком виде:
$$
H(z)=1+F(z)+\dfrac{F^2(z)}{2}+\ldots+\dfrac{F^n(z)}{n}+\ldots=1+\ln\dfrac{1}{1-F(z)}.
$$
Здесь через $\ln(1/(1-z))$ по аналогии с математическим анализом обозначен формальный степенной ряд вида
$$
z+\dfrac{z^2}{2}+\ldots+\dfrac{z^n}{n}+\ldots=:\ln\dfrac{1}{1-z}.
$$

\mysubitem Формула (\ref{eq:comp_formula}) позволяет нам записать решения целого класса комбинаторных задач, связанных с разбиением множества различимых предметов на заранее не определенное количество блоков, в довольно компактном и красивом виде. Нам бы хотелось, однако, наряду с такого рода красивыми формулами иметь и удобные рекуррентные соотношения, позволяющие нам быстро сосчитать по заданным коэффициентам $a_n$ и $b_k$ производящих функций $F(z)$ и $G(z)$ соответствующие коэффициенты $c_n$ при $z^n/n!$ формального степенного ряда $H(z)$. Решению этой задачи, а также поиску явных выражений для коэффициентов $c_n$, посвящен следующий параграф. 


\section*{Упражения}

\begin{exerc} 
Подсчитать количество способов разбить $n$-элементное множество на блоки размерами большими или равными двум. Выразить ответ в терминах чисел Белла.
\end{exerc}

\begin{exerc} 
Доказать для чисел Белла так называемую формулу Добинского:
$$
B_n=\frac{1}{e}\sum_{k=0}^\infty \frac{k^n}{k!}.
$$
\end{exerc}

\begin{exerc} 
В комнате находятся $n$ детей. Эти дети разбиваются на группы, в каждой группе одного ребенка ставят в центр круга, а вокруг него из оставшихся в группе детей образуют хоровод. При этом хоровод может состоять как из нескольких детей, так и из одного ребенка, соединившего руки. Спрашивается, сколькими различными способами можно совершить эти комбинаторные действия.
\end{exerc}

\begin{exerc} 
В колоде лежит $n$ карт. Подсчитать количество способов разбить эти карты на группы чётного размера, в каждой группе образовать из карт упорядоченную стопку, а затем разложить полученные стопки в ряд.
\end{exerc}

\begin{exerc} 
Найти количество способов разбить $n$ людей на $k$ линейно упорядоченных множеств (цепочек), а затем циклически упорядочить эти цепочки.
\end{exerc}






\section*{Решение упражнений}


\begin{sol_exerc} 
Ответ даёт экспоненциальная производящая функция
$$
e^{e^z-1-z} = e^{e^z-1}\cdot e^{-z},
$$
коэффициент при $z^n/n!$ у которой равен 
$$
\sum_{i=0}^n \BCf{n}{i}(-1)^{n-i} B_i.
$$
\end{sol_exerc}

\begin{sol_exerc} 
Воспользуемся производящей функцией для чисел Белла:
$$
e^{e^z-1}=\frac{1}{e}\sum_{k=0}^\infty \frac{e^{kz}}{k!}=\frac{1}{e}\sum_{k=0}^\infty \frac{1}{k!}\sum_{n=0}^\infty \frac{(kz)^{n}}{n!}=
\frac{1}{e}\sum_{n=0}^\infty \frac{z^n}{n!}\sum_{k=0}^\infty \frac{k^n}{k!}.
$$
Таким образом мы получили, что коэффициент при $z^n/n!$ у этой функции равен $\frac{1}{e}\sum_{k=0}^\infty \frac{k^n}{k!}$.
\end{sol_exerc}


\begin{sol_exerc} 
Прежде всего, нам необходимо сосчитать коэффициенты $a_n$ экспоненциальной производящей функции $F(z)$. Очевидно, что $a_0=a_1=0$; в случае же $n>1$ коэффициенты $a_n=n\cdot (n-2)!$. Действительно, мы $n$ способами можем выбрать одного ребенка из группы и поставить его в центр хоровода, а затем $(n-2)!$ способами мы можем расставить оставшихся $(n-1)$ детей по кругу. Следовательно, экспоненциальная производящая функция 
$$
F(z)=z^2+\dfrac{z^3}{2}+\dfrac{z^4}{3}+\ldots=z\Bigl(z+\dfrac{z^2}{2}+\dfrac{z^3}{3}+\ldots\Bigr)=z\cdot \ln\dfrac{1}{1-z}.
$$
Теперь ответ на задачу дают коэффициенты при $z^n/n!$ у производящей функции
$$
H(z)=\exp(F(z))=\dfrac{1}{(1-z)^z}.
$$
\end{sol_exerc}


\begin{sol_exerc} 
Производящая функция $F(z)$, описывающая комбинаторные действия в одной стопке (количество способов упорядочить чётное ненулевое число карт) равна
$$
\sum_{n=1}^\infty (2n)!\frac{z^{2n}}{(2n)!}=\frac{z^2}{1-z^2}.
$$
Линейно упорядочить $k$ стопок можно $k!$ числом способов, поэтому производящая функция $G(z)$ равна
$$
G(z)=\frac{1}{1-z}.
$$
Ответ даётся производящей функцией
$$
H(z)=G(F(z))=\frac{1}{1-\frac{z^2}{1-z^2}}=1+\frac{z^2}{1-2z^2}=1+\sum_{n=0}^\infty 2^n\,(2n+2)!\frac{x^{2n+2}}{(2n+2)!}
$$
Таким образом, число способов совершить указанные действия для положительного чётного $n=2k$ равно $2^{k-1}(2k)!.$ Для нечетного $n$ описанные комбинаторные действия мы совершить не сможем $(c_n=0)$. 
\end{sol_exerc}


\begin{sol_exerc} 
Имеется $a_i=i!$ способов расставить $i$ людей в цепочку, и $b_k=(k-1)!$ способов расставить $k$ блоков по кругу. Следовательно,
$$
F(z)=\dfrac{1}{1-z},\qquad G(z)=1+\ln\dfrac{1}{1-z}\qquad \Longrightarrow \qquad H(z)=1+\ln\dfrac{1}{1-(1/(1-z))}=1+\ln\dfrac{1-z}{1-2z}.
$$
Последнее выражение можно переписать так:
$$
H(z)=1+\ln\dfrac{1}{1-2z}-\ln\dfrac{1}{1-z}\qquad \Longrightarrow \qquad c_0=1,\quad c_n=2^n(n-1)!-(n-1)!=(2^n-1)(n-1)!
$$
Окончательный ответ настолько прост, что его можно получить и с помощью элементарных комбинаторных рассуждений. Именно, расставим $n$ людей по кругу (это можно сделать $(n-1)!$ способами), а затем разобьем этот круг на непустые линейные цепочки, проводя или не проводя между любой из $n$ пар людей черту. Последнее действие можно сделать $2^n-1$ количеством способов (хотя бы одну черту провести необходимо). 
\end{sol_exerc}



\section{Формула Фаа ди Бруно. Полиномы Бэлла}

\myitem Вернемся к композиционной формуле
$$
H(z)=G(F(z))=c_0+c_1\dfrac{z^1}{1!}+c_2\dfrac{z^2}{2!}+\ldots+c_n\dfrac{z^n}{n!}+\ldots,
$$
$$
F(z)=a_0+a_1\dfrac{z^1}{1!}+a_2\dfrac{z^2}{2!}+\ldots+,\qquad \qquad
G(z)=b_0+b_1\dfrac{z^1}{1!}+b_2\dfrac{z^2}{2!}+\ldots,
$$
описывающей количество способов разбить $n$-элементное множество $U$ на заранее не фиксированное количество $k$ непустых неразличимых блоков, совершить внутри каждого блока размером $i_m$ первое комбинаторное действие $a_{i_m}$ числом способов, а затем над самими блоками совершить второе комбинаторное действие $b_k$ числом способов. Наша первая задача состоит в получении явных формул для коэффициентов $c_n$ экспоненциальной производящей функции $H(z)$. 

\mysubitem Начнем мы, как всегда, с нескольких простых примеров.

\begin{examp} Предположим, что в помещении находится четное число $n=2k$ человек. Мы хотим разбить этих людей на пары, совершить над каждой из этих пар какое-то комбинаторное действие $a_2$ способами, а затем совершить над всеми $k$ парами какое-то другое комбинаторное действие $b_k$ способами. В этом случае 
$$
F(z)=a_2\dfrac{z^2}{2!},\qquad G(z)=b_0+b_1z+b_2\dfrac{z^2}{2!}+\ldots+b_k\dfrac{z^k}{k!}+\ldots,
$$
и поэтому 
$$
H(z)=G(F(z))=c_0+c_1z+c_2\dfrac{z^2}{2!}+\ldots+c_n\dfrac{z^n}{n!}+\ldots=
b_0+b_1a_2\dfrac{z^2}{2!}+b_2\Bigl(a_2\dfrac{z^2}{2!}\Bigr)^2\dfrac{1}{2!}+\ldots+b_k\Bigl(a_2\dfrac{z^2}{2!}\Bigr)^k\dfrac{1}{k!}+\ldots
$$
Таким образом, для данного частного случая коэффициенты $c_n$ рассчитываются по формулам
$$
c_n=\left\{
\begin{array}{ll}
0,&\text{если $n=2k+1$,}\\
n!\,\dfrac{b_k}{k!}\Bigl(\dfrac{a_2}{2!}\Bigr)^k,&\text{если $n=2k$,}
\end{array}
\right.\qquad k=0,1,2,\ldots
$$
\end{examp}

\begin{examp} Теперь предположим, что количество людей в помещении кратно пяти, т.е. $n=5k$, и мы совершаем аналогичные комбинаторные действия над пятерками людей. Именно, мы разбиваем $n$-множество на пятерки, совершаем над любой из этой пятерок комбинаторные действия $a_5$ способами, а затем совершаем над самими этими пятерками какое-то другое комбинаторное действие $b_k$ способами. В этом случае
$$
F(z)=a_5\dfrac{z^5}{5!},\qquad G(z)=b_0+b_1z+b_2\dfrac{z^2}{2!}+\ldots+b_k\dfrac{z^k}{k!}+\ldots,
$$
$$
H(z)=G(F(z))=c_0+c_1z+c_2\dfrac{z^2}{2!}+\ldots+c_n\dfrac{z^n}{n!}+\ldots=
b_0+b_1a_5\dfrac{z^5}{5!}+b_2\Bigl(a_5\dfrac{z^5}{5!}\Bigr)^2\dfrac{1}{2!}+\ldots+b_k\Bigl(a_5\dfrac{z^5}{5!}\Bigr)^k\dfrac{1}{k!}+\ldots,
$$
так что
$$
c_n=\left\{
\begin{array}{ll}
0,&\text{если $n\neq 5k$,}\\
n!\,\dfrac{b_k}{k!}\Bigl(\dfrac{a_5}{5!}\Bigr)^k,&\text{если $n=5k$,}
\end{array}
\right.\qquad k=0,1,2,\ldots
$$
\end{examp}

\begin{examp} Наконец, предположим, что нам разрешено разбивать $n$-элементное множество $U$ как на пятерки, так и на двойки. При таком условии
$$
F(z)=a_2\dfrac{z^2}{2!}+a_5\dfrac{z^5}{5!},\qquad G(z)=b_0+b_1z+b_2\dfrac{z^2}{2!}+\ldots+b_k\dfrac{z^k}{k!}+\ldots,
$$
и наша задача --- определить явное выражение для коэффициентов $c_n$ в экспоненциальной производящей функции
$$
H(z)=G(F(z))=c_0+c_1z+c_2\dfrac{z^2}{2!}+\ldots+c_n\dfrac{z^n}{n!}+\ldots=
$$
$$
=b_0+b_1\Bigl(a_2\dfrac{z^2}{2!}+a_5\dfrac{z^5}{5!}\Bigr)+b_2\Bigl(a_2\dfrac{z^2}{2!}+a_5\dfrac{z^5}{5!}\Bigr)^2\dfrac{1}{2!}+\ldots+
b_k\Bigl(a_2\dfrac{z^2}{2!}+a_5\dfrac{z^5}{5!}\Bigr)^k\dfrac{1}{k!}+\ldots
$$
Так как
$$
(x+y)^k=\sum\limits_{i=0}^k\BCf{k}{i}x^iy^{k-i}=\sum\limits_{\substack{i_1+i_2=k\\ i_1,i_2\geq 0}}\dfrac{k!}{i_1!i_2!}x^{i_1}y^{i_2},
$$
то 
$$
b_k\Bigl(a_2\dfrac{z^2}{2!}+a_5\dfrac{z^5}{5!}\Bigr)^k\dfrac{1}{k!}=
b_k\sum\limits_{\substack{k_2+k_5=k\\ k_2,k_5\geq 0}}\dfrac{1}{k_2!k_5!}a_2^{k_2}a_5^{k_5}
\dfrac{1}{(2!)^{k_2}}\dfrac{1}{(5!)^{k_5}}z^{2\cdot k_2+5\cdot k_5}.
$$
Нам же нужно во всех выражениях такого типа (то есть для любых $k=0,1,2,\ldots$) собрать слагаемые при $z^n/n!$. Иными словами, нас интересуют все такие $k_2$ и $k_5$, которые обеспечивают нам равенство $2k_2+5k_5=n$. Учитывая эти соображения, мы для $c_n$ получаем соотношение вида
$$
c_n=\sum\limits_{\substack{2\cdot k_2+5\cdot k_5=n\\ k_2,k_5\geq 0}}\dfrac{n!}{k_2!k_5!}b_{k_2+k_5}
\Bigl(\dfrac{a_2}{2!}\Bigr)^{k_2}\Bigl(\dfrac{a_5}{5!}\Bigr)^{k_5}.
$$
Еще раз подчеркнем, что суммирование в этой формуле происходит по всем возможным решениям уравнения
$$
2\cdot k_2+5\cdot k_5=n,\qquad \qquad k_2,k_5\geq 0.
$$
Количество таких решений, как мы знаем, можно найти с помощью производящей функции
$$
f(z)=\dfrac{1}{(1-z^2)(1-z^5)}.
$$
\end{examp}

\mysubitem Теперь более-менее понятно, как обобщить наши рассуждения на общий случай функции 
$$
F(z)=0+a_1\dfrac{z}{1!}+a_2\dfrac{z^2}{2!}+\ldots+a_n\dfrac{z^n}{n!}+\ldots
$$
Аналогичные рассуждения показывают, что в общем случае коэффициенты $c_n$ вычисляются по формуле
\begin{equation}
\label{eq:Arbogast}
c_n=\sum\limits_{\substack{1\cdot k_1+\ldots+n\cdot k_n=n\\ k_i\geq 0}}\dfrac{n!}{k_1!\ldots k_n!}b_{k_1+\ldots+k_n}
\Bigl(\dfrac{a_1}{1!}\Bigr)^{k_1}\ldots\Bigl(\dfrac{a_n}{n!}\Bigr)^{k_n}.
\end{equation}
Суммирование в (\ref{eq:Arbogast}) ведется по всем неотрицательным целым решениям уравнения
\begin{equation}
\label{eq:support_probl}
1\cdot k_1+\ldots+n\cdot k_n=n,\qquad \qquad k_i\geq 0,
\end{equation}
количество которых, как известно, равно $p(n)$. Заметим, однако, что в формуле (\ref{eq:Arbogast}) нам нужно не просто найти число всевозможных решений, но и предъявить все эти решения. 

\mysubitem Формула (\ref{eq:Arbogast}) для коэффициентов $c_n$ впервые была получена французским математиком Арбогастом в 1800 году и переоткрыта в 1855 году итальянским математиком, изобретателем и священником Франческо Фаа ди Бруно. С тех пор она носит название формулы Фаа ди Бруно.

Заметим, что и Арбогаст, и Фаа ди Бруно получили формулу (\ref{eq:Arbogast}), пытаясь получить выражение для $n$-й производной композиции двух аналитических функций. Первые несколько таких производных сосчитать легко:
$$
\sqsupset \,\,H(z)=G(F(z))\qquad \Longrightarrow \qquad H'(z)=G'_F\cdot F'_z,
$$
$$
H''(z)=G''_{FF}\cdot (F'_z)^2+G'_F\cdot F''_{zz},
$$
$$
H'''(z)=G'''_{FFF}\cdot (F'_z)^3+3\cdot G''_{FF}\cdot F'_z\cdot F''_{zz}+G'_F\cdot F'''_{zzz}.
$$
Возникает вопрос --- существует ли общая формула для этих производных, и какое отношение имеет к ней композиционная формула? На самом же деле, конечно же, имеет, и самое прямое. Именно, любая аналитическая в точке $z=0$ функция раскладывается в окрестности этой точки в ряд Тейлора:
$$
F(z)=F(0)+F'(0)\dfrac{z^1}{1!}+F''(0)\dfrac{z^2}{2!}+\ldots+F^{(n)}(0)\dfrac{z^n}{n!}+\ldots=:
a_0+a_1\dfrac{z}{1!}+a_2\dfrac{z^2}{2!}+\ldots+a_n\dfrac{z^n}{n!}+\ldots,
$$
$$
G(z)=G(0)+G'(0)\dfrac{z^1}{1!}+G''(0)\dfrac{z^2}{2!}+\ldots+G^{(n)}(0)\dfrac{z^n}{n!}+\ldots=:
b_0+b_1\dfrac{z}{1!}+b_2\dfrac{z^2}{2!}+\ldots+b_n\dfrac{z^n}{n!}+\ldots
$$
Поэтому 
$$
H(z)=G(F(z))=c_0+c_1\dfrac{z}{1!}+c_2\dfrac{z^2}{2!}+\ldots+c_n\dfrac{z^n}{n!}+\ldots,
$$
где коэффициенты $c_n=H^{(n)}(0)$ как раз и вычисляются по формулам (\ref{eq:Arbogast}).


\myitem С практической точки зрения полученные нами выше явные аналитические формулы (\ref{eq:Arbogast}) не очень удобны --- хотя бы потому, что в процессе вычисления коэффициентов $c_n$ по формулам (\ref{eq:Arbogast}) нам приходится решать довольно-таки нетривиальную задачу по поиску всех решений уравнения (\ref{eq:support_probl}) в неотрицательных целых числах. Зачастую значительно более удобными оказываются рекуррентные соотношения, связывающие коэффициенты $a_n$, $b_n$ и $c_n$ у производящих функций, входящих в композиционную формулу (\ref{eq:comp_formula}). К получению такого рода соотношений мы сейчас и перейдем.


\mysubitem Обратимся еще раз к формуле (\ref{eq:Arbogast}). Заметим, что индексы у коэффициентов $b_k$ в этой формуле зависят от конкретного решения уравнения в целых числах
$$
1\cdot k_1+\ldots+n\cdot k_n=n,
$$
то есть заранее не фиксируются. Нам же будет сейчас удобно наряду с $n$ зафиксировать также и индекс $k=k_1+\ldots+k_n$, то есть зафиксировать количество блоков в разбиении $n$-множества. По сути дела, мы хотим перегруппировать слагаемые в (\ref{eq:Arbogast}), записав коэффициенты $c_n$ в виде
\begin{equation}
\label{eq:Arbogast_k}
c_n=\sum\limits_{k} b_k\cdot B_{n,k}(a_1,\ldots,a_{n}),
\end{equation}
\begin{equation}
\label{eq:polyn_Bell}
B_{n,k}(a_1,\ldots,a_{n})=\sum\limits_{\substack{k_1+\ldots+k_{n}=k\\1\cdot k_1+\ldots+n\cdot k_{n}=n}}
\dfrac{n!}{k_1!\ldots k_{n}!}\Bigl(\dfrac{a_1}{1!}\Bigr)^{k_1}\ldots\Bigl(\dfrac{a_{n}}{n!}\Bigr)^{k_{n}}.
\end{equation}
С комбинаторной точки зрения функции $B_{n,k}(a_1,\ldots,a_{n})$ описывают количество способов разбить $n$ различимых предметов ровно на $k$ неразличимых непустых блока, а затем совершить над элементами каждого такого блока размерами $i_m$ комбинаторные действия $a_{i_m}$ способами.


Казалось бы, мы ничуть не упростили себе задачу --- ведь для вычисления функций $B_{n,k}$ по формулам (\ref{eq:polyn_Bell}) нам вместо решения задачи (\ref{eq:support_probl}) приходится искать все решения в целых неотрицательных числах системы 
\begin{equation}
\label{eq:conn_n_k_p_k_n}
\begin{array}{rcl}
k_1+\ldots+k_n&=&k,\\[1ex]
1\cdot k_1+\ldots+n\cdot k_n&=&n
\end{array}
\end{equation} 
при фиксированных значениях параметров $n$ и $k$. Однако у такой формы записи есть одно немаловажное преимущество: в ней, в отличие от формулы (\ref{eq:Arbogast}), явным образом разделены коэффициенты $a_n$ и $b_k$ производящих функций $F(z)$ и $G(z)$. Именно, все коэффициенты $a_n$ собраны в функции $B_{n,k}$, которые, в свою очередь, никак не зависят от коэффициентов $b_k$. Оказывается, что это соображение можно положить в основу получения рекуррентных соотношений на функции $B_{n,k}$.


\mysubitem Действительно, предположим, что существуют рекуррентные соотношения, связывающие функции $B_{n,k}(a_1,\ldots,a_n)$. Так как эти функции никак не зависят от $b_k$, то они должны быть верными при любых значениях этих коэффициентов. Выберем тогда в качестве $b_k$ выражения вида $t^k$, где $t$ --- некоторый произвольный параметр. С комбинаторной точки зрения такой выбор коэффициентов означает следующее: мы приписываем любому разбиению $n$-множества ровно на $k$ блоков вес (или метку) $t^k$. Производящая функция 
$$
H(z)=1+t\dfrac{F(z)}{1!}+t^2\dfrac{[F(z)]^2}{2!}+\ldots+t^k\dfrac{[F(z)]^k}{k!}+\ldots
$$
формально зависит теперь от двух переменных --- $z$ и $t$. Раскрывая в этом выражении скобки и собирая слагаемые при $z^n/n!$, мы можем переписать эту функцию в следующем виде:
$$
H(z,t)=1+c_1(t)\dfrac{z}{1!}+c_2(t)\dfrac{z^2}{2!}+\ldots+c_n(t)\dfrac{z^n}{n!}+\ldots,
$$
$$
\text{где}\qquad \qquad c_n(t):=\sum\limits_{k=1}^n t^k\cdot B_{n,k},\qquad n>0.
$$

Заметим теперь, что функция $H(z,t)$ представляет собой композицию двух функций --- функции $G(z,t)=\exp(t\cdot z)$ и функции $F(z)$, то есть может быть записана как
$$
H(z,t)=\exp(t\cdot F(z)).
$$
А из такого рода равенства мы уже умеем получать нужные нам рекуррентные соотношения. Действительно, как и при выводе формул (\ref{eq:comp_exp_gen_func_rec_c_n}), продифференцируем это равенство по $z$ и приравняем коэффициенты при соответствующих степенях $z$:
$$
H'(z,t)=t\cdot\exp(t\cdot F(z))\cdot F'(z)=t\cdot H(z,t)\cdot F'(z)\qquad \Longleftrightarrow
$$
$$
\Longleftrightarrow \qquad c_1(t)+c_2(t)\dfrac{z}{1!}z+\ldots+c_{n+1}(t)\dfrac{z^n}{n!}+\ldots=
$$
$$
=t\cdot
\Bigl(c_0(t)+c_1(t)\dfrac{z}{1!}+\ldots+c_{n}(t)\dfrac{z^n}{n!}+\ldots\Bigr)
\Bigl(a_1+a_2\dfrac{z}{1!}z+\ldots+a_{n+1}\dfrac{z^n}{n!}+\ldots\Bigr)\qquad \Longrightarrow
$$
$$
\Longrightarrow \qquad c_{n+1}(t)=t\sum\limits_{i=0}^n\BCf{n}{i}c_i(t)\cdot a_{n+1-i}.
$$
Вспоминая теперь, что $c_n(t):=\sum\limits_{k=1}^n t^k\cdot B_{n,k}$, мы последнее равенство можем переписать так:
$$
\sum\limits_{k=0}^{n+1}B_{n+1,k}\cdot t^k=t\sum\limits_{i=0}^n\BCf{n}{i}a_{n+1-i}\sum\limits_{k=0}^iB_{i,k}\cdot t^k=
\sum\limits_{k=0}^nt^{k+1}\sum\limits_{i=k}^n \BCf{n}{i}B_{i,k}\cdot a_{n+1-i}.
$$
Все, что нам теперь остается сделать для получения рекуррентных соотношений на функции $B_{n,k}$ --- это приравнять коэффициенты при одинаковых степенях $t^k$. В результате данной операции мы получаем, что $B_{n+1,0}=0$ для всех $n=0,1,2,\ldots$, а оставшиеся коэффициенты вычисляются по формулам
\begin{equation}
\label{eq:req_Bell_c_nk}
B_{n+1,k+1}=\sum\limits_{i=k}^n\BCf{n}{i}B_{i,k}\cdot a_{n+1-i},\qquad k=0,\ldots,n;\qquad B_{0,0}=c_0(t)=1.
\end{equation}

Из полученных нами рекуррентных соотношений (\ref{eq:req_Bell_c_nk}), в частности, следует, что функции $B_{n,k}=B_{n,k}(a_,\ldots,a_n)$ представляют собой полиномы от переменных $a_1,\ldots,a_n$ с целыми неотрицательными коэффициентами. Эти полиномы называются \emph{полиномами Белла} и имеют огромное количество приложений как в комбинаторике, так и во многих других разделах математики. 

\mysubitem Рассмотрим теперь важный частный случай полученных нами формул, а именно, случай, когда все коэффициенты $a_n$, $n>0$, производящей функции $F(z)$ равны единице. Коэффициенты $B_{n,k}=B_{n,k}(1,\ldots,1)$ в этом случае описывают количество способов разложить $n$ различимых предметов ровно по $k$ неразличимым ящикам при условии, что в каждый ящик следует положить хотя бы один предмет. Иными словами, $B_{n,k}(1,\ldots,1)$ представляют собой не что иное, как числа Стирлинга второго рода $S(n,k)$. 

Отмеченное обстоятельство, в свою очередь, позволяет получить для чисел Стирлинга $S(n,k)$ удобные рекуррентные соотношения. Действительно, полагая в формулах (\ref{eq:req_Bell_c_nk}) все коэффициенты $a_n$, $n>0$, равными единице, мы получаем равенства вида $S(0,0)=1$, $S(n+1,0)=0$ для всех $n\geq 0$, 
\begin{equation}
\label{eq:req_eq_St_2_new}
S(n+1,k+1)=\sum\limits_{i=k}^n\BCf{n}{i}S(i,k),\qquad k=0,\ldots,n,\quad n=0,1,\ldots
\end{equation}

Наконец, подставляя $a_n=1$, $n>0$ в формулы (\ref{eq:polyn_Bell}), мы получаем еще одно представление чисел Стирлинга второго рода, а именно, 
\begin{equation}
\label{eq:analit_St_2_new}
S(n,k)=\sum\limits_{\substack{k_1+\ldots+k_{n}=k\\1\cdot k_1+\ldots+n\cdot k_n=n}}
\dfrac{n!}{k_1!\ldots k_{n}!(1!)^{k_1}\ldots((n)!)^{k_{n}}}.
\end{equation}
Данное соотношение полезно сравнить со следующей формулой для чисел Стирлинга $S(n,k)$, полученной в первой главе:
$$
S(n,k)=\dfrac{1}{k!}\hat{S}(n,k)=\dfrac{1}{k!}
\sum_{\substack{k_1+k_2+\ldots+k_n=n\\k_i> 0}}\dfrac{n!}{k_1!\cdot k_2!\cdot\ldots\cdot k_n!}.
$$
В этой формуле, в отличие от (\ref{eq:analit_St_2_new}), суммирование идет по всем \emph{упорядоченным} разбиениям числа $n$.
 



 
\section*{Упражнения}
 
\begin{exerc}
Показать, что в формуле (\ref{eq:Arbogast_k}) для подсчета коэффициентов $c_n$ индекс $k$ меняется от единицы до $n$, а в формулах (\ref{eq:polyn_Bell}) и (\ref{eq:analit_St_2_new}) суммирование реально проводится по всем целым неотрицательным решениям системы 
$$
\begin{array}{rcl}
k_1+\ldots+k_{n-k+1}&=&k,\\[1ex]
1\cdot k_1+\ldots+(n-k+1)\cdot k_{n-k+1}&=&n.
\end{array}
$$
Как следствие, формулы (\ref{eq:Arbogast_k}), (\ref{eq:polyn_Bell}) и (\ref{eq:analit_St_2_new}) можно переписать в следующем виде:
\begin{equation}
\label{eq:Arbogast_n_k}
c_n=\sum\limits_{k=1}^n b_k\cdot B_{n,k}(a_1,\ldots,a_{n-k+1}),
\end{equation}
\begin{equation}
\label{eq:polyn_Bell_n_k}
B_{n,k}(a_1,\ldots,a_{n-k+1})=\sum\limits_{\substack{k_1+\ldots+k_{n-k+1}=k\\1\cdot k_1+\ldots+(n-k+1)\cdot k_{n-k+1}=n}}
\dfrac{n!}{k_1!\ldots k_{n-k+1}!}\Bigl(\dfrac{a_1}{1!}\Bigr)^{k_1}\ldots\Bigl(\dfrac{a_{n-k+1}}{(n-k+1)!}\Bigr)^{k_{n-k+1}},
\end{equation}
\end{exerc}
\begin{equation}
\label{eq:St_2_n_k}
S(n,k)=\sum\limits_{\substack{k_1+\ldots+k_{n-k+1}=k\\1\cdot k_1+\ldots+(n-k+1)\cdot k_{n-k+1}=n}}
\dfrac{n!}{k_1!(1!)^{k_1}\ldots k_{n-k+1}!((n-k+1)!)^{k_{n-k+1}}}.
\end{equation}

\begin{exerc}
Объяснить комбинаторный смысл слагаемых, стоящих в правой части формул (\ref{eq:polyn_Bell_n_k}).
\end{exerc}

\begin{exerc} 
Описать комбинаторный смысл слагаемых 
\begin{equation}
\label{eq:coeff_polyn_Bell}
\dfrac{n!}{k_1!(1!)^{k_1}\ldots k_{n-k+1}!((n-k+1)!)^{k_{n-k+1}}},
\end{equation}
в формуле (\ref{eq:St_2_n_k}) для чисел Стирлинга 2-го рода. 
\end{exerc}

\begin{exerc}
Доказать с помощью комбинаторных рассуждений, что коэффициент $c_n$ в случае $n=4$ выражается через коэффициенты $a_i$ и $b_j$ по формуле 
$$
c_4=b_4\cdot a_1^4+b_3\cdot 6a_1^2a_2+b_2\cdot [3a_2^2+4a_1a_3]+b_1\cdot a_4.
$$
\end{exerc}

\begin{exerc}
Доказать комбинаторно справедливость рекуррентного соотношения (\ref{eq:req_Bell_c_nk}).
\end{exerc}



\section*{Решение упражнений}

\begin{sol_exerc} 
Мы знаем, что количество решений системы (\ref{eq:conn_n_k_p_k_n}) равно $p_k(n)$. Это число равно нулю для всех $k>n$. Далее, для любых значений $n$ значение $p_1(n)=1:$ при $k=1$ у системы (\ref{eq:conn_n_k_p_k_n}) существует единственное решение вида $k_n=1$, $k_i=0$ для всех $i=1,2,\ldots,n-1$. 

Разберем теперь несколько более содержательный случай $k=2$. Система (\ref{eq:conn_n_k_p_k_n}) для этого значения $k$ принимает следующий вид:
$$
\begin{array}{rcl}
k_1+\ldots+k_n&=&2,\\[1ex]
1\cdot k_1+\ldots+n\cdot k_n&=&n.
\end{array}
$$
Покажем, что у такой системы решений с $k_n>0$ существовать не может. Действительно, пусть, например, $k_n=1$. Для такого значения $k_n$ система примет вид
$$
\begin{array}{rcl}
k_1+\ldots+k_{n-1}&=&1,\\[1ex]
1\cdot k_1+\ldots+(n-1)\cdot k_{n-1}&=&0.
\end{array}
$$
Видно, что у такой системы решений в целых неотрицательных числах уже не существует. Тем более не будет существовать решений системы (\ref{eq:conn_n_k_p_k_n}) для значений $k_n>1$. Итак, в случае $k=2$ мы можем положить $k_n=0$, то есть рассматривать вместо (\ref{eq:conn_n_k_p_k_n}) систему уравнений вида
$$
\begin{array}{rcl}
k_1+\ldots+k_{n-1}&=&2,\\[1ex]
1\cdot k_1+\ldots+(n-1)\cdot k_{n-1}&=&n.
\end{array}
$$

Пусть теперь $k=3$. По тем же соображениям, что и ранее, нам достаточно рассматривать решения, у которых $k_n=0$. Однако для случая $k=3$ мы можем продвинуться немного дальше. Именно, пусть, например, $k_{n-1}=1$.  При таком значении $k_{n-1}$ система
$$
\begin{array}{rcl}
k_1+\ldots+k_{n-2}&=&2,\\[1ex]
1\cdot k_1+\ldots+(n-2)\cdot k_{n-2}&=&n-(n-1)=1.
\end{array}
$$
решений не имеет: из второго уравнения следует, что $k_1=1$, $k_2=\ldots=k_{n-2}=0$, и их сумма всегда равна $1$, то есть не равна $2$. Случаи, в которых $k_{n-1}>1$, тем более не могут иметь места. Итак, для значений $k=3$ система (\ref{eq:conn_n_k_p_k_n}) сводится, по-сути, к системе уравнений вида
$$
\begin{array}{rcl}
k_1+\ldots+k_{n-2}&=&3,\\[1ex]
1\cdot k_1+\ldots+(n-2)\cdot k_{n-2}&=&n.
\end{array}
$$

Аналогичные рассуждения в случае произвольного $2\leq k\leq n$ показывают, что система (\ref{eq:conn_n_k_p_k_n}) имеет решения лишь в случае, когда $k_n=k_{n-1}=\ldots=k_{n-k+2}=0$. Так, например, в пограничном случае $k_n=k_{n-1}=\ldots=k_{n-k+3}=0$, $k_{n-k+2}=1$ получаем систему вида
$$
\begin{array}{rcl}
k_1+\ldots+k_{n-k+1}&=&k-1,\\[1ex]
1\cdot k_1+\ldots+(n-k+1)\cdot k_{n-k+1}&=&n-(n-k+2)=k-2.
\end{array}
$$
Понятно, что такая система решений уже не имеет --- в первом уравнении сумма $k_i$ с коэффициентами, равными единице, должна быть равна $k-1$, а во втором уравнении сумма тех же $k_i$, но с коэффициентами, большими или равными единице, по условию должна оказаться равной $k-2$. 
\end{sol_exerc}

\begin{sol_exerc}
Любое слагаемое в правой части формул для $B_{n,k}$ описывает количество способов разбить $n$-элементное множество на $k$ непустых неупорядоченных блоков так, чтобы $k_1$ блоков содержало ровно по одному элементу, $k_2$ блоков содержали ровно по два элемента и так далее, а затем совершить над элементами блоков, содержащих $i$ элементов, комбинаторные действия $a_i$ способами. 
\end{sol_exerc}

\begin{sol_exerc}
Как следует из предыдущего упражнения, любое из этих слагаемых описывает количество способов разбиения $n$-множества на $k$ \emph{непустых неразличимых} блоков, при котором $k_1$ блоков содержат ровно по одному элементу, $k_2$ --- ровно по два элемента и так далее.

В этом, однако, можно убедиться и непосредственно. Действительно, зафиксируем некоторое произвольное разбиение $n$-элементного множества на $k$ блоков вида $k_1\times k_2\times\ldots\times k_{n-k+1}$, то есть разбиение на $k$ непустых неупорядоченных блоков, в котором каждый из $k_i$ блоков содержит ровно $i$ элементов. Переставим $n$ элементов этого множества всеми возможными $n!$ способами. Имеются две причины, по которым не все получающиеся в результате такой операции разбиения будут различными. 

Первая причина состоит в том, что нас не интересует порядок элементов, которые входят в один и тот же блок размером $i$. Как следствие, все $i!$ таких перестановок, которые меняют лишь эти $i$ элемента, и оставляют неизменными оставшиеся $n-i$ элементов, дают нам одно и то же разбиение. Но для любого из $k$ блоков мы такие перестановки в каждом блоке можем совершать независимо, и поэтому для получения различных разбиений нам общее число $n!$ перестановок следует уменьшить в $(1!)^{k_1}\cdot (2!)^{k_2}\cdot ((n-k+1)!)^{k_{n-k+1}}$ раз. 

Заметим, однако, что среди полученным таким образом
$$
\dfrac{n!}{(1!)^{k_1}\ldots((n-k+1)!)^{k_{n-k+1}}}
$$
разбиений все еще имеются одинаковые. Связано это с тем, что относительное расположение блоков одной и той же длины в данном разбиении роли не играет. Поэтому любые перестановки $n$ элементов, сводящиеся к перестановке $k_i$ блоков длины $i$, дадут нам одно и то же разбиение. Таких перестановок при фиксированном $k_i$ существует $k_i!$ штук. Поэтому, поделив записанное выше выражение на $k_1!k_2!\ldots k_{n-k+1}!$, мы и получим, наконец, нужное нам количество \emph{различных} разбиений $n$-элементного множества на $k$ блоков вида $k_1\times k_2\times\ldots\times k_{n-k+1}$.
\end{sol_exerc}


\begin{sol_exerc}
Согласно формуле (\ref{eq:Arbogast_n_k}), 
$$
c_4=\sum\limits_{k=1}^4 b_k\cdot B_{4,k}(a_1,\ldots,a_{5-k})=b_1\cdot B_{4,1}(a_1,a_2,a_3,a_4)+
b_2\cdot B_{4,2}(a_1,a_2,a_3)+b_1\cdot B_{4,3}(a_1,a_2)+b_1\cdot B_{4,4}(a_1).
$$
Согласно комбинаторному смыслу полиномов Белла, функция $B_{4,1}(a_1,\ldots,a_4)$ описывает количество способов разбить четырехэлементное множество на один блок, а затем выполнить над его элементами комбинаторное действие $a_4$ числом способов. Очевидно, что любое множество можно разбить на один блок лишь одним способом, поэтому
$$
B_{4,1}=1\cdot a_4.
$$
Аналогично, существует единственный способ разбить четырехэлементное множество на четыре неразличимые блока, так что
$$
B_{4,4}=1\cdot a_1^4.
$$
Полином $B_{4,2}(a_1,a_2,a_3)$ описывает комбинаторные действия над $4$-элементным множеством, разбиваемым ровно на два блока. Коэффициент при $a_2^2$ отвечает разбиению $4$-множества $U_4=\{x_1,x_2,x_3,x_4\}$ вида $2\times 2$, то есть описывает следующие три различные разбиения:
$$
\{x_1,x_2\}\cup \{x_3,x_4\},\qquad \{x_1,x_3\}\cup \{x_2,x_4\},\qquad \{x_1,x_4\}\cup \{x_2,x_3\}. 
$$
Коэффициент в $B_{4,2}$ при $a_1a_3$ соответствует следующим четырем разбиениям $4$-множества $U_4$ вида $3\times 1$:
$$
\{x_1,x_2,x_3\}\cup \{x_4\},\qquad \{x_1,x_2,x_4\}\cup \{x_3\},\qquad \{x_1,x_3,x_4\}\cup \{x_2\},\qquad \{x_2,x_3,x_4\}\cup \{x_1\}. 
$$
Как следствие,
$$
B_{4,2}(a_1,a_2,a_3)=3a_2^2+4a_1a_3.
$$
Наконец, разбить четырехэлементное множество на три блока можно шестью различными способами. Поэтому
$$
B_{4,3}(a_1,a_2)= 6a_1^2a_2.
$$
\end{sol_exerc}

\begin{sol_exerc}
Число $B_{n+1,k+1}$ описывает количество способов разбить $(n+1)$-элементное множество на $(k+1)$ непустых неупорядоченных блоков и совершить внутри каждого блока размера $i_m$ комбинаторное действие $a_{i_m}$ способами. Рассмотрим $(n+1)$-й элемент множества. Пусть $i$ — количество элементов, которые не попали с ним в один блок, а оказались в $k$ других блоках. С одной стороны, число $i$ не превосходит $n$, с другой --- не может быть меньше $k$, так как $i < k$ элементов нельзя разбить на $k$ непустых блоков.

При фиксированном $i$ мы можем $\BCf{n}{i}$ способами выбрать $i$ элементов из $n$. Разбить выбранные элементы на $k$ блоков и совершить комбинаторные действия внутри этих блоков мы можем $B_{i,k}$ способами. Наконец,  для любого такого разбиения имеется $a_{n-i+1}$ способов совершить комбинаторное действие над элементами $(k+1)$-го блока, содержащего элемент $n+1$ и имеющего размер $n-i+1$. Приведённые рассуждения доказывают соотношение (\ref{eq:req_Bell_c_nk}).
\end{sol_exerc}



\section{Комбинаторика перестановок}

\myitem В предыдущих двух параграфах мы в качестве примера достаточно часто приводили частный случай экспоненциальной (\ref{eq:exp_formula}) и композиционной (\ref{eq:comp_formula}) формул, соответствующий коэффициентам $a_n=1$, $n>0$. С комбинаторной точки зрения данный выбор коэффициентов описывает задачи, в которых мы разбиваем $n$-элементное множество на заранее не определенное число неразличимых блоков и не совершаем никаких дополнительных комбинаторных действий с элементами, находящимися в каждом из этих блоков. Основная задача данного параграфа --- рассмотреть еще один важный случай формул (\ref{eq:exp_formula}) и (\ref{eq:comp_formula}), в котором коэффициенты $a_n=(n-1)!$, $n>0$. 

\mysubitem С комбинаторной точки зрения подобный выбор коэффициентов означает, что мы после разбиения $n$-элементного множества на неразличимые блоки \emph{циклически упорядочиваем} элементы в каждом из этих блоков. Посмотрим вначале, что мы сможем получить из экспоненциальной формулы (\ref{eq:exp_formula}) при таком выборе коэффициентов $a_n$. 

Подстановка в формулу (\ref{eq:exp_formula}) производящей функции
$$
F(z)=z+\dfrac{z^2}{2}+\dfrac{z^3}{3}+\ldots+\dfrac{z^n}{n}+\ldots=\ln\dfrac{1}{1-z}
$$
дает нам следующее представление для функции $C(z):=\exp(F(z)):$
$$
C(z)=C_0+C_1\dfrac{z}{1!}+C_2\dfrac{z^2}{2!}+\ldots=\exp\Bigl(z+\dfrac{z^2}{2}+\dfrac{z^3}{2}+\ldots\Bigr)=
$$
$$
=\exp\Bigl(\ln\dfrac{1}{1-z}\Bigr)=\dfrac{1}{1-z}=1+1!\dfrac{z}{1!}+2!\dfrac{z^2}{2!}+\ldots+n!\dfrac{z^n}{n!}+\ldots
$$
Иными словами, мы получили, что количество $C_n$ способов разбить всеми возможными способами $n$-элементное множество на блоки, а затем циклически упорядочить элементы в каждом блоке, равно $n!$. С другой стороны, мы знаем, что $n!$ есть количество всех возможных перестановок $n$-элементного множества $[n]$. Оказывается, две эти комбинаторные интерпретации чисел $n!$ тесно связаны между собой.

\mysubitem Действительно, любую перестановку можно представить в виде произведения нескольких более простых перестановок, называемых циклами. Например, перестановку
$$
\sigma=\left(\begin{array}{cccc} 1& 2 & 3 & 4 \\[1ex] 2 & 3 & 4 & 1 \end{array}\right)
$$
можно записать в виде циклов
$$
\sigma=\left(\begin{array}{cccc} 1& 2 & 3 & 4  \end{array}\right)=\left(\begin{array}{cccc} 2& 3 & 4 & 1  \end{array}\right)
=\left(\begin{array}{cccc} 3& 4 & 1 & 2  \end{array}\right)=\left(\begin{array}{cccc} 4& 1 & 2 & 3  \end{array}\right),
$$
а перестановку
$$
\tau=\left(\begin{array}{cccc} 1& 2 & 3 & 4 \\[1ex] 4 & 3 & 2 & 1 \end{array}\right)
$$
можно представить в виде произведения пары циклов $(1\,\,4)(2\,\,3)$: 
$$
\tau=(1\,\,4)\,(2\,\,3)=(2\,\,3)\,(1\,\,4)=(4\,\,1)\,(2\,\,3)=\ldots
$$
Но ведь это, по сути, и означает, что для задания любой перестановки мы должны совершить следующие комбинаторные действия: разбить $n$-элементное множество $[n]$ на блоки, а затем задать в каждом блоке циклическую структуру, то есть циклически упорядочить элементы в каждом блоке. Ровно эти действия и описывает нам экспоненциальная формула (\ref{eq:exp_formula}) в случае, когда $a_n=(n-1)!$.

\mysubitem Итак, оказалось, что с точки зрения экспоненциальной формулы (\ref{eq:exp_formula}) числа $C_n=n!$ в случае $a_n=(n-1)!$ являются аналогами чисел Белла $B_n$, появляющихся из этой же формулы в случае, когда $a_n=1$. Продолжим далее эту аналогию и рассмотрим теперь частный случай композиционной формулы, в которой по-прежнему $a_n=(n-1)!$, а коэффициенты $b_k=t^k$. 

Легко понять комбинаторный смысл коэффициентов $c(n,k)$ при $t^kz^n/n!$ у производящей функции
$$
C(z,t)=G(F(z))=\sum\limits_{n=0}^{+\infty}\biggl(\sum\limits_{k=0}^n c(n,k)\,t^k\biggr) \dfrac{z^n}{n!}.
$$
Действительно, $c(n,k)$ есть количество способов разбить $n$-элементное множество ровно на $k$ блоков, а затем циклически упорядочить элементы в каждом блоке. На языке перестановок эти коэффициенты описывают нам количество перестановок, имеющих фиксированное число циклов, равное $k$.

Напомним, что в случае $a_n=1$ мы при аналогичном выборе $b_k$ получали в качестве коэффициентов в разложении функции $H(z,t)$ по степеням $z$ и $t$ числа Стирлинга второго рода $S(n,k)$. Неудивительно поэтому, что коэффициенты $c(n,k)$ называются числами Стирлинга первого рода. 

\myitem Наряду с числами Стирлинга второго рода, числа Стирлинга первого рода чрезвычайно широко используются как в комбинаторике, так и в других разделах математики. Рассмотрим основные свойства этих чисел. 

\mysubitem Запишем явное выражение для производящей функции, описывающей числа Стирлинга первого рода:
\begin{equation}
\label{eq:exp_g_f_St_1}
C(z,t)=\exp\Bigl(t\cdot \ln\dfrac{1}{1-z}\Bigr)=\Bigl(\dfrac{1}{1-z}\Bigr)^t=\dfrac{1}{(1-z)^t}.
\end{equation}
С использованием этой функции можно получить множество полезных свойств чисел Стирлинга первого рода. 

Выведем, к примеру, рекуррентное соотношение для этих чисел. Начнем с граничных условий. По определению, $c(0,0)=1$. Далее, ясно, что $c(n,0)=0$ для $n>0$ --- нельзя непустое множество разбить на ноль блоков. Очевидно также, что $c(n,n)=1$ --- единственному разбиению $n$ на $n$ блоков отвечает тождественная перестановка. Наконец, понятно, что $c(n,k)=0$ для всех $k>n$. 

Вернемся к производящей функции
$$
C(z,t)=\sum\limits_{n=0}^{+\infty}\biggl(\sum\limits_{k=0}^n c(n,k)\,t^k\biggr) \dfrac{z^n}{n!}=
\sum\limits_{n=0}^{+\infty}c_n(t) \dfrac{z^n}{n!}
$$
и рассмотрим формальный степенной ряд
\begin{equation}
\label{eq:exp_g_f_St_1_diff_z}
\pd{C}{z}=\sum\limits_{n=1}^{+\infty}c_n(t) \dfrac{z^{n-1}}{(n-1)!}=\sum\limits_{n=0}^{+\infty}c_{n+1}(t) \dfrac{z^n}{n!}.
\end{equation}
Согласно явной формуле (\ref{eq:exp_g_f_St_1}) для функции $C(z)$,
$$
\pd{C}{z}=\dfrac{t}{(1-z)^{t+1}}=\dfrac{t}{1-z}C(z,t)
\qquad\Longleftrightarrow\qquad (1-z)\pd{C}{z}=t\,C(z,t).
$$
Последнее равенство с учетом (\ref{eq:exp_g_f_St_1_diff_z}) можно переписать так:
$$
(1-z)\sum\limits_{n=0}^{+\infty}c_{n+1}(t) \dfrac{z^n}{n!}=t\,\sum\limits_{n=0}^{+\infty}c_n(t) \dfrac{z^n}{n!}\qquad\Longleftrightarrow
$$
$$
\Longleftrightarrow\quad
\sum\limits_{n=0}^{+\infty}c_{n+1}(t) \dfrac{z^n}{n!}=\sum\limits_{n=0}^{+\infty}(n+1)c_{n+1}(t) \dfrac{z^{n+1}}{(n+1)!}+
t\,\sum\limits_{n=0}^{+\infty}c_n(t) \dfrac{z^n}{n!}=\sum\limits_{n=0}^{+\infty}n\,c_{n}(t) \dfrac{z^{n}}{n!}+
t\,\sum\limits_{n=0}^{+\infty}c_n(t) \dfrac{z^n}{n!}.
$$
Следовательно,
$$
c_{n+1}(t)=n\cdot c_n(t)+t\cdot c_n(t),\qquad \qquad n=0,1,2,\ldots
$$
Отсюда уже несложно вывести рекуррентное соотношение для чисел $c(n,k)$:
$$
\begin{array}{clc}
&\sum\limits_{k=0}^{n+1} c(n+1,k)\,t^k=n\sum\limits_{k=0}^n c(n,k)\,t^k+\sum\limits_{k=0}^n c(n,k)\,t^{k+1}&\qquad\Longleftrightarrow\\[3ex]
\Longleftrightarrow\quad&
\sum\limits_{k=1}^{n+1} c(n+1,k)\,t^k=n\sum\limits_{k=1}^{n+1} c(n,k)\,t^k+\sum\limits_{k=1}^{n+1} c(n,k-1)\,t^{k}.&
\end{array}
$$
Приравнивая теперь коэффициенты при одинаковых степенях $t$, мы получаем искомое рекуррентное соотношение для чисел Стирлинга первого рода: 
\begin{equation}
\label{req_St_1}
c(n+1,k)=n\cdot c(n,k)+c(n,k-1),\qquad\qquad k=1,2,\ldots,n+1,\qquad n=0,1,2,\ldots
\end{equation}
$$
c(0,0)=1,\qquad c(n,0)=0\quad\forall \,n=1,2,\ldots,\qquad c(n,k)=0\quad\forall\,k>n.
$$


\mysubitem Получим с помощью формулы (\ref{eq:exp_g_f_St_1}) еще одно чрезвычайно полезное соотношение для чисел $c(n,k)$. Воспользуемся для этого формулой бинома Ньютона:
$$
\dfrac{1}{(1-z)^t}=1+\sum\limits_{n=1}^{+\infty}\dfrac{(-t)(-t-1)\ldots(-t-n+1)}{n!}(-1)^nz^n=
1+\sum\limits_{n=1}^{+\infty}\dfrac{t\cdot (t+1)\cdot\ldots\cdot(t+n-1)}{n!}z^n.
$$
Следовательно, коэффициенты $c_n(t)$ при $z^n/n!$ у производящей функции $C(z,t)$ могут быть записаны в следующем явном виде:
\begin{equation}
\label{eq:up_factor}
c_0(t)\equiv 1,\qquad  c_n(t):=\sum\limits_{k=0}^nc(n,k)t^k=t\cdot(t+1)\cdot\ldots\cdot(t+n-1)=:t^{\underline{n}}\equiv (t)^n,\quad n>0.
\end{equation}
Числа $t^{\bar{n}}\equiv (t)^n$ называются возрастающими факториальными числами. Мы, таким образом, показали, что числа Стирлинга первого рода $c(n,k)$ есть коэффициенты в разложении возрастающего факториального числа $t^{\bar{n}}$ по степеням $t^k$. 


\mysubitem Введенные в предыдущем параграфе полиномы Белла позволяют записать явные аналитические выражения для чисел Стирлинга первого рода. Действительно, подставляя в формулы (\ref{eq:polyn_Bell_n_k}) для этих полиномов значения $a_n=(n-1)!$, получаем, что 
$$
c(n,k)=\sum\limits_{\substack{k_1+\ldots+k_{n-k+1}=k\\1\cdot k_1+\ldots+(n-k+1)\cdot k_{n-k+1}=n}}
\dfrac{n!}{k_1!\ldots k_{n-k+1}!}\cdot\dfrac{1}{(1)^{k_1}(2)^{k_2}\ldots (n-k+1)^{k_{n-k+1}}}.
$$


\mysubitem Числа $c(n,k)$ называются иногда числами Стирлинга первого рода без знака. Наряду с этими числами также вводятся так называемые числа $s(n,k)$ Стирлинга первого рода со знаком
$$
s(n,k)=(-1)^{n-k}c(n,k)=(-1)^{k-n}c(n,k).
$$
Заменим в формуле (\ref{eq:up_factor}) $t$ на $(-t)$:
$$
c_n(-t):=\sum\limits_{k=0}^nc(n,k)(-1)^kt^k=(-1)^nt\cdot(t-1)\cdot\ldots\cdot(t-n+1).
$$
Домножая левую и правую часть последнего равенства на $(-1)^n=(-1)^{n-2k}$, получим
$$
(-1)^nc_n(-t)=\sum\limits_{k=0}^ns(n,k)t^k=t\cdot(t-1)\cdot\ldots\cdot(t-n+1)=:t^{\underbar{n}}\equiv (t)_n.
$$
Числа $t^{\underbar{n}}\equiv (t)_n$ называются убывающими факториальными числами, а числа $s(n,k)$ Стирлинга первого рода со знаком представляют собой, таким образом, коэффициенты в разложении убывающего факториального числа по степеням $t^k$. 

\mysubitem Вспомним, наконец, что числа Стирлинга второго рода $S(n,k)$ появлялись в разложении вида
$$
t^n=\sum\limits_{k=0}^n S(n,k)\,(t)_k.
$$
Сравнивая это соотношение с формулой 
$$
(t)_n=\sum\limits_{k=0}^ns(n,k)\,t^k,
$$
мы видим, что числа $S(n,k)$ и $s(n,k)$ взаимно-обратны в следующем смысле:
\begin{equation}
\label{eq:Stirl_ort}
\sum\limits_{i=k}^n S(n,i)\cdot s(i,k)=\sum\limits_{k=0}^ks(n,i)\cdot S(i,k)=\delta_{n,k}=\left\{
\begin{array}{cc} 1,& n=k,\\[2ex] 0,& n\neq k.\end{array}\right.
\end{equation}
Действительно,
$$
(t)_n=\sum\limits_{i=0}^ns(n,i)\,t^i=(t)_n=\sum\limits_{i=0}^ns(n,i)\,\sum\limits_{k=0}^i(t)_k\cdot S(i,k)=
\sum\limits_{k=0}^n\left\{\sum\limits_{i=k}^n s(n,i)\cdot S(i,k)\right\}\,(t)_k.
$$

С алгебраической точки зрения равенства (\ref{eq:Stirl_ort}) можно трактовать следующим образом. Пусть у нас имеются два базиса в пространстве функций: степенной базис $\{1,t,t^2,\ldots,t^n,\ldots\}=:B_p$ и так называемый факториальный базис $\{1,t,t(t-1),\ldots,(t)_n,\ldots\}=:B_f$. Тогда матрицы $S$ и $s$, составленные из чисел Стирлинга второго и первого рода, являются матрицами перехода от одного базиса к другому:
$$
B_f=s\cdot B_p,\qquad\qquad B_p=S\cdot B_f,\qquad\qquad s\cdot S=S\cdot s=I,
$$
где $I$ --- единичная матрица.

\myitem Итак, мы достаточно подробно рассмотрели частный случай экспоненциальной и композиционной формул, в которых коэффициенты $a_n=(n-1)!$ для всех $n>0$. Давайте теперь рассмотрим чуть более общий класс задач, в которых часть коэффициентов $a_n=(n-1)!$, а часть этих коэффициентов равна нулю. С комбинаторной точки зрения равенство $a_n=0$ означает, что мы исключаем из рассмотрения перестановки, имеющие циклы длины $n$. 

\mysubitem Рассмотрим в качестве характерного примера задачу, связанную с подсчетом перестановок, в которых отсутствуют единичные циклы. В этой задаче $a_0=a_1=0$, а коэффициенты $a_n=(n-1)!$ для всех $n>1$. Подставляя производящую функцию
$$
F(z)=\dfrac{z^2}{2}+\dfrac{z^3}{3}+\ldots=\ln\dfrac{1}{1-z}-z
$$
в экспоненциальную формулу (\ref{eq:exp_formula}), получаем, что
$$
D(z):=D_0+D_1\dfrac{z}{1!}+D_2\dfrac{z^2}{2!}+\ldots=\exp(F(z))=\exp\Bigl(\ln\dfrac{1}{1-z}-z\Bigr)=\dfrac{e^{-z}}{1-z}.
$$
В результате мы получили знакомую нам из первого параграфа формулу для производящей функции, описывающей количество $D_n$ перестановок множества $[n]$, в которых все элементы меняют свое положение (задача о беспорядках). Иными словами, с точки зрения композиции производящих функций числа $D_n$ являются аналогами чисел Белла $B_n$ в задаче о разбиении $n$-множества на блоки, а также факториальных чисел $n!$ в задаче о подсчете всех перестановок. 

\mysubitem Теперь несколько усложним эту задачу, а именно, подсчитаем количество $d(n,k)$ перестановок, не содержащих циклов единичной длины и состоящих ровно из $k$ циклов. Числа $d(n,k)$ с точки зрения описываемого в настоящем параграфе подхода являются аналогами чисел Стирлинга второго рода  $S(n,k)$ в задаче о разбиении $n$-множества ровно на $k$ блоков, а также чисел Стирлинга первого рода $c(n,k)$ в задаче о подсчете количества всех перестановок, имеющих ровно $k$ циклов. Как следствие, числа $d(n,k)$ носят название присоединенных чисел Стирлинга первого рода.

Экспоненциальная производящая функция для этих чисел получается подстановкой в композиционную формулу (\ref{eq:comp_formula}) значений $b_k=t^k$ и $a_n=(n-1)!$, $n>1$: 
\begin{equation}
\label{eq:exp_g_f_D_zt}
D(z,t)=\sum\limits_{n=0}^{+\infty}\Bigl(\sum\limits_{k=0}^nd(n,k)\,t^k\Bigr)\dfrac{z^n}{n!}=
\exp\Bigl[t\cdot\Bigl(\dfrac{z^2}{2}+\ldots+\dfrac{z^n}{n}+\ldots\Bigr)\Bigr]=\dfrac{e^{-tz}}{(1-z)^t}.
\end{equation}
Сравнивая формулы (\ref{eq:exp_g_f_St_1}) и (\ref{eq:exp_g_f_D_zt}), мы видим, что экспоненциальные производящие функции для чисел $c(n,k)$ и $d(n,k)$связаны соотношением вида
\begin{equation}
\label{eq:d_n_k_req}
C(z,t)=e^{tz}\cdot D(z,t)\qquad \Longrightarrow\qquad c(n,k)=\sum\limits_{i=0}^n\BCf{n}{i}d(n-i,k-i).
\end{equation}

\mysubitem Используя производящую функцию $D(z,t)$, достаточно просто получить рекуррентные соотношения для чисел $d(n,k)$. Действительно, продифференцируем равенство (\ref{eq:exp_g_f_D_zt}) по $z$:
$$
\pd{D(z,t)}{z}=\dfrac{tz}{1-z}D(z,t)\qquad\Longleftrightarrow\qquad 
\sum\limits_{n=0}^{+\infty}d_{n+1}(t)\dfrac{z^n}{n!}=\sum\limits_{n=0}^{+\infty}d_{n+1}(t)\dfrac{z^{n+1}}{n!}+
\sum\limits_{n=0}^{+\infty}td_{n}(t)\dfrac{z^{n+1}}{n!}\qquad\Longleftrightarrow
$$
$$
\Longleftrightarrow\qquad 
\sum\limits_{n=0}^{+\infty}d_{n+1}(t)\dfrac{z^n}{n!}=\sum\limits_{n=0}^{+\infty}nd_{n}(t)\dfrac{z^{n}}{n!}+
\sum\limits_{n=0}^{+\infty}ntd_{n-1}(t)\dfrac{z^{n}}{n!}\qquad\Longrightarrow
$$
$$
\Longrightarrow\quad d_{n+1}(t)=n\cdot d_n(t) + n\cdot t\cdot d_{n-1}(t),\qquad \qquad n=1,2,\ldots;\qquad d_0(t)=1,\quad d_1(t)=0\qquad
\Longrightarrow
$$
$$
\Longrightarrow\quad d(n+1,k)=n\cdot d(n,k)+n\cdot d(n-1,k-1),\qquad k=1,\ldots,n;\quad n=1,2,\ldots;
$$
$$
d(0,0)=1,\quad d(n,n)=d(n,0)=0 \,\,\forall\,n>0.
$$

Заметим теперь, что количество $D_n$ всех перестановок без неподвижных точек равно, очевидно, $d_n(1)$. Отсюда, в частности, следует справедливость приведенного нами в параграфе 1 рекуррентного соотношения (\ref{eq:derangements_req}) для чисел $D_n$:
$$
D_{n+1}=n[D_n+D_{n-1}],\qquad n\geq 1; \qquad D_0=1,\quad D_1=0.
$$ 




\myitem В заключение данного параграфа вновь вернемся к частному случаю экспоненциальной формулы, в которой коэффициенты $a_n=(n-1)!$. Мы показали, что подстановка этих значений в формулу (\ref{eq:exp_formula}) дает нам в качестве коэффициентов $c_n$ производящей функции $C(z)=\exp(F(z))$ количество $C_n=n!$ всех перестановок $n$-множества $[n]$. Давайте теперь посмотрим, что даст нам подстановка в ту же формулу выражений вида
$$
a_n=(n-1)!\,x_n,\qquad n>0,
$$
где $x_n$ --- некоторые параметры, зависящие от индекса $n$. 

\mysubitem Подставляя чисто формально эти выражения в формулу Фаа ди Бруно (\ref{eq:Arbogast}) и учитывая, что в нашем случае все коэффициенты $b_k=1$, мы получаем следующую формулу для коэффициентов производящей функции 
$$
C(z)=\exp(F(z))=\sum\limits_{n=0}^{+\infty}\tilde{Z}_{n}(x_1,\ldots,x_{n}) \dfrac{z^n}{n!}
=\sum\limits_{n=0}^{+\infty}Z_{n}(x_1,\ldots,x_{n})\,z^n:
$$
\begin{equation}
\label{eq:zikl_polyn}
\tilde{Z}_{n}(x_1,\ldots,x_{n})=\sum\limits_{1\cdot k_1+\ldots+n\cdot k_n=n}
\dfrac{n!}{k_1!\ldots k_{n}!}\Bigl(\dfrac{x_1}{1}\Bigr)^{k_1}\ldots\Bigl(\dfrac{x_{n}}{n}\Bigr)^{k_{n}}=
\sum\limits_{1\cdot k_1+\ldots+n\cdot k_n=n}
\dfrac{n!}{k_1!\,1^{k_1}\ldots k_{n}!\,n^{k_n}}\,x_1^{k_1}\ldots x_{n}^{k_{n}}.
\end{equation}
Полагая в этих формулах все $x_i$ равными единице, мы в левой части этого равенства получим $\tilde{Z}_{n}(1,\ldots,1)=n!$, то есть количество всех перестановок $n$-элементного множества $[n]:$
$$
n!=\sum\limits_{1\cdot k_1+\ldots+n\cdot k_n=n}
\dfrac{n!}{k_1!\,1^{k_1}\ldots k_{n}!\,n^{k_n}}.
$$
Любое же слагаемое в правой части этого равенства даст нам количество перестановок множества $[n]$, имеющих $k_1$ циклов длины $1$, $k_2$ циклов длины $2$, и так далее. 

С этой точки зрения коэффициенты $\tilde{Z}_{n}(x_1,\ldots,x_{n})$ в формуле (\ref{eq:zikl_polyn}) мы можем трактовать как некоторые полиномы от формальных переменных $x_1,\ldots,x_n$, коэффициенты при $x_1^{k_1}\cdot\ldots\cdot x_{n}^{k_{n}}$ у которых описывают нам количество перестановок $n$-множества, в которых имеются ровно $k_1$ циклов единичной длины, ровно $k_2$ циклов длины два и так далее. 


\mysubitem Коэффициент $\tilde{Z}_{n}(x_1,\ldots,x_{n})$ при фиксированном $n$ принято называть \emph{дополненным цикловым индексом,} а коэффициент
\begin{equation}
\label{cirl_index}
Z_n(x_1,\ldots,x_n)=\dfrac{1}{n!}\tilde{Z}_n(x_1,\ldots,x_n).
\end{equation}
\emph{цикловым индексом} множества всех перестановок $n$-элементного множества. Запишем выражения для коэффициентов $\tilde{Z}_{n}(x_1,\ldots,x_{n})$ для нескольких первых значений параметра $n$:
$$
\begin{array}{c}
\tilde{Z}_1(x_1)=x_1,\\[2ex]
\tilde{Z}_2(x_1,x_2)=x_1^2+x_2,\\[2ex]
\tilde{Z}_3(x_1,x_2,x_3)=x_1^3+3x_1x_2+2x_3,\\[2ex]
\tilde{Z}_4(x_1,\ldots,x_4)=x_1^4+6x_1^2x_2+3x_2^2+8x_1x_3+6x_4.
\end{array}
$$
Третье равенство, в частности, означает, что множество всех перестановок $3$-элементного множества содержит единственный цикл, содержащий $3$ перестановки единичной длины (тождественная перестановка $(1)(2)(3)$), три перестановки, содержащие один цикл единичной длины и один двойной цикл (перестановки $(1\,2)(3)$, $(1\,3)(2)$, $(2\,3)(1)$), а также две перестановки, имеющие единственный цикл длины три (перестановки $(1\,2\,3)$ и $(1\,3\,2)$). 

\mysubitem Помимо явных формул, полезно также иметь рекуррентные формулы для вычисления цикловых индексов. Подставляя в полученные нами ранее рекуррентные соотношения (\ref{eq:comp_exp_gen_func_rec_c_n}) значения $a_n=(n-1)!\,x_n$, мы получаем формулы вида
$$
\tilde{Z}_{n+1}(x_1,\ldots,x_{n+1})=\sum\limits_{k=0}^n(n)_kx_{k+1}\tilde{Z}_{n-k}(x_1,\ldots,x_{n-k}).
$$

Так, например,
$$
\tilde{Z}_5=x_1\tilde{Z}_4+4x_2\tilde{Z}_3+12x_3\tilde{Z}_2+24x_4\tilde{Z}_1+24x_5\tilde{Z}_0=
$$
$$
=x_1(x_1^4+6x_1^2x_2+3x_2^2+8x_1x_3+6x_4)+4x_2(x_1^3+3x_1x_2+2x_3)+12x_3(x_1^2+x_2)+24x_4x_1+24x_5=
$$
$$
=x_1^5+10x_1^3x_2+15x_1x_2^2+20x_1^2x_3+20x_2x_3+30x_1x_4+24x_5.
$$


 
 
\section*{Упражнения}

\begin{exerc}
Получить рекуррентное соотношение (\ref{req_St_1}) из элементарных комбинаторных соображений. 
\end{exerc}

\begin{exerc}
Дать комбинаторную интерпретацию равенства (\ref{eq:d_n_k_req}). 
\end{exerc}

\begin{exerc} Еще одним обобщением задачи о беспорядках является задача о поиске количества $D(n,k)$ перестановок, в которых ровно $k$ элементов остаются на своих местах, а $(n-k)$ элементов меняют свое положение. Доказать, что
$$
D(n,k)=\BCf{n}{k}\cdot D_{n-k}=\dfrac{n!}{k!}\sum\limits_{i=0}^{n-k}\dfrac{(-1)^i}{i!}.
$$ 
Построить производящую функцию $D(z,t)$ для этих чисел.
\end{exerc}


\begin{exerc} Построить производящую функцию для всех перестановок, $r$-я степень которых есть тождественная перестановка $id$: 
$$
\pi^r=id.
$$
Рассмотреть два частных случая этой ситуации --- инволюции, то есть перестановки вида $\pi^2=id$, а также инволюции без неподвижных точек, то есть инволюции, не содержащие циклов длины $1$. Показать, что количество инволюций без неподвижных точек равно $1\cdot 3\cdot\ldots\cdot (2n-1)=:(2n-1)!!$.
\end{exerc}

\begin{exerc} Доказать, что производящая функция, описывающая количество перестановок с циклами нечетной длины, имеет вид
$$
G_{odd}=\sqrt{\dfrac{1+z}{1-z}}.
$$
Получить с ее помощью явные выражения для числа таких перестановок. 
\end{exerc}

\begin{exerc} 
Доказать, что если $n$ чётно, то перестановок $n$-множества, состоящих из циклов только чётной длины, столько же, сколько перестановок $n$-множества, состоящих из циклов только нечётной длины.
\end{exerc}


\begin{exerc} 
Легко понять, что каждая $n$-перестановка может быть записана в виде произведения циклов не единственным образом (при $n>1$). Из всех возможных цикловых записей перестановки можно выделить такую, в которой запись каждого цикла начинается с наибольшего элемента, а сами циклы выписаны в порядке возрастания этих наибольших элементов. Такая запись называется канонической. Например, (5\,2\,1)(6\,4\,3) — каноническая запись, а (3\,6\,4)(5\,2\,1) --- нет.

Обозначим через $S_n$ множество всех $n$-перестановок. Определим отображение  $\Phi: S_n \rightarrow S_n$ следующим образом. Чтобы применить $\Phi$ к перестановке, нужно выписать эту перестановку в канонической цикловой записи, опустить все скобки, а результат этого интерпретировать как перестановку, записанную в ``обычной'' записи (на $i$-й позиции стоит образ элемента $i$). Например, $\Phi((3\,6\,4)(5\,2\,1)) = \Phi((5\,2\,1)(6\,4\,3)) = 5\,2\,1\,6\,4\,3$.

Доказать, что $\Phi$ — биекция.
\end{exerc}


\begin{exerc} 
Найдите количество $n$-перестановок, в которых элемент с номером $i$ лежит в цикле длины $k$. 

\pointing Покажите, что ответ от $i$ не зависит, зафиксируйте удобное $i$ и примените к каждой из перестановок описанное в предыдущем упражнении отображение $\Phi$.
\end{exerc}

\begin{exerc} 
Найдите количество $n$-перестановок, в которых $k$ заданных элементов лежат в одном и том же цикле. 

\pointing Зафиксируйте удобный набор из $k$ элементов и примените к каждой из перестановок отображение $\Phi$.

\end{exerc}

\begin{exerc} 
Докажите, что в среднем перестановки имеют $H_n$ циклов, где $H_n$ — $n$-я частичная сумма гармонического ряда:
$$
H_n=\sum_{i=1}^n \frac{1}{i}.
$$
\end{exerc}

\begin{exerc} 
Какое минимальное количество $n$-перестановок нужно зафиксировать, чтобы из этих перестановок (взятых в любом количестве) можно было с помощью произведения получить любую другую $n$-перестановку?
\end{exerc}



\section*{Решение упражнений}

\begin{sol_exerc}
Разобъем множество перестановок элементов $\{1,\ldots,n+1\}$, содержащих ровно $k$ циклов, на два блока. В первый блок поместим перестановки, в которых элемент $(n+1)$ содержится в цикле длины $1$, а во второй --- перестановки, в которых этот элемент содержится в циклах длины, большей единице. 

Очевидно, что количество перестановок в первом блоке равно $c(n,k-1)$. Покажем, что количество элементов во втором блоке равно $n\cdot c(n,k)$.

Действительно, любая перестановка из второго блока может быть получена добавлением числа $(n+1)$ в один из $k$ циклов перестановки $n$-элементного множества. Всего имеется $c(n,k)$ таких перестановок. Заметим теперь, что в любой из циклов длины $n_i$ число $(n+1)$ можно вставить ровно $n_i$ числом способов. Всего же, таким образом, имеется $n_1+\ldots+n_k=n$ способов вставить число $(n+1)$ в перестановку первых $n$ чисел.
\end{sol_exerc}

\begin{sol_exerc}
Равенство (\ref{eq:d_n_k_req}) имеет следующий комбинаторный смысл: количество $c(n,k)$ способов получить перестановку, содержащую ровно $k$ циклов, равно количеству способов разбить $n$-множество на два блока размерами $i$ и $(n-i)$, единственным способом построить в первом блоке $i$ циклов единичной длины, а во втором блоке $d(n-i,k-i)$ способами построить перестановку $(n-i)$-элементного множества, содержащую $(k-i)$ циклов, длина каждого из которых больше или равна двум.
\end{sol_exerc}

\begin{sol_exerc} 
Действительно, для получения перестановки, содержащей ровно $k$ неподвижных элементов, нам следует $\BCf{n}{k}$ способами выбрать элементы, которые остаются неподвижными, а затем $D_{n-k}$ способами перемешать оставшиеся $(n-k)$ элемента.

Заметим теперь, что на языке производящих функций равенство $D(n,k)=\BCf{n}{k}D_{n-k}$ выглядит так:
$$
D(z,t)=e^{tz}\cdot D(z)\qquad \Longrightarrow \qquad D(z,t)=\dfrac{e^{-z}}{1-z}\cdot e^{tz}=\dfrac{e^{z(t-1)}}{1-z}.
$$
\end{sol_exerc}

\begin{sol_exerc} Очевидно, что все такие перестановки должны состоять из циклов, длина которых делит $r$. Выбирая в экспоненциальной формуле коэффициенты
$$
\begin{array}{cc}
a_d=0,&\qquad\text{если}\quad d \nmid r,\\[2ex]
a_d=(d-1)!&\qquad\text{если}\quad d\mid r,
\end{array}
$$
мы для указанных перестановок получаем производящую функцию вида
$$
C^{(r)}(z)=\exp\biggl(\sum\limits_{d\mid r} a_d\,\dfrac{z^d}{d!}\biggr)=\exp\biggl(\sum\limits_{d\mid r} \dfrac{z^d}{d}\biggr).
$$
Для случая инволюций $r=2$, и потому
$$
C^{(2)}(z)=e^{z+z^2/2}.
$$
Наконец, инволюциям без неподвижных точек отвечает производящая функция 
$$
\tilde{C}^{(2)}(z)=e^{z^2/2}=1+\dfrac{z^2}{2}+\dfrac{1}{2!}\left(\dfrac{z^2}{2}\right)^2+\ldots+\dfrac{1}{n!}\left(\dfrac{z^2}{2}\right)^n+\ldots,
$$
откуда сразу же получаем, что количество таких перестановок 
$$
\tilde{C}_n^{(2)}=\dfrac{1}{n!\,2^n}\cdot (2n)!=(2n-1)!!
$$
\end{sol_exerc}

\begin{sol_exerc} Очевидно, что количество перестановок, имеющих только нечетные циклы, описывается производящей функцией вида 
$$
G_{odd}(z)=\exp\Bigl(z+\dfrac{z^3}{3}+\dfrac{z^5}{5}+\ldots\Bigr)=e^{F_{odd}(z)}
$$
Заметим теперь, что 
$$
F'_{odd}(z)=1+z^2+z^4+\ldots=\dfrac{1}{1-z^2}=\dfrac{1}{2}\left[\dfrac{1}{1-z}+\dfrac{1}{1+z}\right]\quad \Longrightarrow
\quad F_{odd}(z)=\dfrac{1}{2}\ln\dfrac{1}{1-z}+\dfrac{1}{2}\ln(1+z).
$$
Следовательно,
$$
G_{odd}(z)=\exp\left[\dfrac{1}{2}\ln\dfrac{1}{1-z}+\dfrac{1}{2}\ln(1+z)\right]=\sqrt{\dfrac{1+z}{1-z}}.
$$

\end{sol_exerc}

\begin{sol_exerc} Для перестановок, состоящих только из чётных циклов, производящая функция записывается так:
$$
G_{even}(z)=\exp\Bigl(\frac{z^2}{2}+\dfrac{z^4}{4}+\dfrac{z^6}{6}+\ldots\Bigr)=:e^{F_{even}(z)}.
$$
Можно записать равенство:
$$
F_{odd}(z)=\frac{\ln(\frac{1}{1-z})+\ln(\frac{1}{1+z})}{2}.
$$
Следовательно,
$$
G_{even}(z)=\exp\left[\frac{\ln(\frac{1}{1-z})+\ln(\frac{1}{1+z})}{2}\right]={\dfrac{1}{\sqrt{1-z^2}}}.
$$
При этом производящую функцию $G_{odd}(z)$ можно переписать в виде 
$$
G_{odd}(z)=\sqrt{\dfrac{1+z}{{1-z}}}={\dfrac{1}{\sqrt{1-z^2}}}+z{\dfrac{1}{\sqrt{1-z^2}}}.
$$
Первое слагаемое, определяющее коэффициенты при чётных степенях $z$, совпадает с $G_{even}(z)$, что и завершает доказательство. 
\end{sol_exerc}

\begin{sol_exerc} 
Для того, чтобы доказать, что $\Phi$  --- биекция, можно, например, предъявить обратное преобразование, $\Phi^{-1}$. Опишем его. Выпишем перестановку в ``обычной'' записи, а затем расставим в этой записи скобки так, чтобы с любого элемента, который больше всех предыдущих, начинался новый цикл. Легко видеть, что полученное преобразование действительно обратно к $\Phi$.
\end{sol_exerc}

\begin{sol_exerc} 
Ответ не зависит от $i$ по очевидным причинам: элементы перестановок можно переименовывать любым образом, получая вместо $i$ любой желаемый элемент. 

Выберем теперь $i=n$. Применим ко всем $n$-перестановкам отображение $\Phi$. Перестановки, в которых элемент $n$ лежал в цикле длины $k$, перейдут в перестановки, в которых элемент $n$ находится на позиции $n-k+1$, так как c элемента $n$ в канонической цикловой записи перестановки всегда начинается последний цикл. Ясно, что существует $(n-1)!$ перестановок, в которых $n$ находится на заранее фиксированной позиции. Так как $\Phi$ — биекция, то и $n$-перестановок, в которых $n$ лежит в цикле фиксированной длины, также $(n-1)!$.
\end{sol_exerc}


\begin{sol_exerc} 
Так как ответ не зависит от выбранного набора элементов, зафиксируем набор $S=\{n, n-1, \dots, n-k+1\},$ ответ для которого получить проще. Применим к каждой перестановке $\sigma$ отображение $\Phi(\sigma)$. Перестановки $\sigma$, в которых элементы $S$ лежали в одном цикле, перейдут в перестановки $\Phi(\sigma)$, в которых $n$ стоит раньше, чем все остальные элементы $S$. Количество же перестановок $\Phi(\sigma)$, в которых число $n$ стоит раньше чисел $(n-1),\ldots,(n-k+1)$, составляет $1/k$ от общего количества $n!$ всех перестановок. Таким образом, имеется $n!/k$ перестановок, в которых $k$ заданных элемента лежат в одном и том же цикле.
\end{sol_exerc}

\begin{sol_exerc} 
Докажем утверждение по индукции. Обозначим через $X_n$ случайную величину, равную количеству циклов в случайно выбранной $n$-перестановке. Ясно, что $\EV(X_1)=1$. Предположим, что  $\EV(X_{n-1})=\sum_{i=1}^{n-1} \frac{1}{i}$ и рассмотрим произвольно выбранную $n$-перестановку. 

Для такой перестановки вероятность события, состоящего в том, что элемент $n$ переходит в себя и образует цикл единичной длины, равна $1/n$. При этом оставшиеся $n-1$ элементов образуют случайную $(n-1)$-перестановку, количество циклов в которой равно $X_{n-1}$. Это означает, что $X_n= 1+X_{n-1}$ с вероятностью $1/n$.

Вероятность того, что в случайной перестановке $n$ в себя не переходит, а значит, принадлежит циклу длины два или более, составляет $1-1/n=(n-1)/n$. Если в такой перестановке удалить элемент $n$, то мы получим случайную перестановку на $n-1$ элементе с тем же количеством циклов. Таким образом, с вероятностью $(n-1)/n$ выполнено равенство $X_n= X_{n-1}$.

Так как математическое ожидание линейно, то из приведённых рассуждений можно заключить, что
$$
\EV(X_{n})=\dfrac{1}{n} (1+\EV(X_{n-1})) + \dfrac{n-1}{n}\EV(X_{n-1}) = 
\dfrac{1}{n}\Bigl(1+\sum_{i=1}^{n-1} \frac{1}{i}\Bigr) + \dfrac{n-1}{n}\sum_{i=1}^{n-1} \dfrac{1}{i} = 
\sum_{i=1}^{n} \dfrac{1}{i} .
$$
\end{sol_exerc}

\begin{sol_exerc}
Случай $n \leq 2$ тривиален, поэтому перейдём сразу к рассмотрению случая $n \geq 3$. Понятно, что одной перестановкой нам не обойтись. С одной стороны, чтобы любой элемент мог при перестановке перейти в любой другой элемент, все элементы такой перестановки должны лежать в одном и том же цикле. С другой стороны, если $\sigma$ — перестановка, состоящая из одного цикла, то возведением $\sigma$ в степень можно получить лишь $n$ вместо $n!$ различных перестановок. 

Утверждается, что двух перестановок $\sigma=(1\,\,2)$ и $\pi=(1\,\,2\,\,\dots \,\,n)$ уже оказывается достаточно. Действительно, любую перестановку можно записать в виде произведения фундаментальных транспозиций $\sigma_i=(i\,\,i+1)$. А любую транспозицию $\sigma_i$, в свою очередь, можно выразить через перестановки $\sigma$ и $\pi$ по формуле $\pi^{i}\sigma\pi^{n-i}$.
\end{sol_exerc}


\section{Перечисление помеченных графов}

\myitem Пожалуй, наиболее полезные приложения экспоненциальная (\ref{eq:exp_formula}) и композиционная (\ref{eq:comp_formula}) формулы находят в теории графов. Мы в данном параграфе покажем, как использовать эти формулы для перечисления простых связных графов, эйлеровых графов, двудольных графов и деревьев. 

\mysubitem  Во второй главе мы подсчитали количество $g_n=2^{\BCf{n}{2}}$ всех простых графов на $n$ вершинах. Продемонстрируем, как с помощью экспоненциальной формулы выразить через эти числа $g_n$ количество $g_n^{(c)}$ односвязных графов.

Любой простой граф $G$ представляет собой объединение некоторого числа $k$ своих связных компонент. Поэтому для получения всех простых графов на $n$ вершинах нам нужно совершить следующие комбинаторные действия: разбить $n$-множество вершин на заранее не фиксированное число $k$ непустых неупорядоченных блоков и построить на любом из таких блоков размером $i_m$ связной простой граф $g_{i_m}^{(c)}$ количеством способов. Иными словами, производящая функция 
$$
G(z)=1+1\cdot \dfrac{z^1}{1!}+2\cdot \dfrac{z^2}{2!}+8\cdot \dfrac{z^3}{3!}+\ldots+2^{\BCf{n}{2}}\cdot \dfrac{z^n}{n!}+\ldots
$$
для количества $g_n$ всех простых графов и производящая функция
$$
G^{(c)}(z)=0+1\cdot \dfrac{z^1}{1!}+1\cdot \dfrac{z^2}{2!}+4\cdot \dfrac{z^3}{3!}+\ldots+g_n^{(c)}\cdot \dfrac{z^n}{n!}+\ldots
$$
для количества $g_n^{(c)}$ всех связных простых графов, согласно комбинаторному смыслу формулы (\ref{eq:exp_formula}), связаны между собой следующим равенством:
$$
G(z)=\exp(G^{(c)}(z)).
$$
Теперь с помощью формулы (\ref{eq:comp_exp_gen_func_rec_a_n}) мы можем записать следующее рекуррентное соотношение для подсчета количества $g_n^{(c)}$ всех связных графов:
$$
g_{n+1}^{(c)}=g_{n+1}-\sum\limits_{i=1}^{n}\BCf{n}{i}\,g_{i}\,g_{n+i-1}^{(c)}=
2^{\BCf{n+1}{2}}-\sum\limits_{i=1}^{n}\BCf{n}{i}\,2^{\BCf{i}{2}}\,g_{n+i-1}^{(c)}\,.
$$

\mysubitem Несложно обобщить этот результат на случай простых графов, построенных на $n$ вершинах и имеющих ровно $k$ компонент связности, $k=1,\ldots,n.$ Для этого, как мы уже знаем, нам достаточно вместо формулы (\ref{eq:exp_formula}) использовать композиционную формулу (\ref{eq:comp_formula}), в которой в качестве коэффициентов $b_k$ выбраны степени $t^k$ произвольного параметра $t$. 


\myitem Перейдем теперь к задаче подсчета количества всех эйлеровых графов. Все, что для этого нужно --- это подсчитать количество всех (в том числе и несвязных) простых графов, у которых любая вершина имеет четную степень (так называемых четных графов), а затем воспользоваться экспоненциальной формулой для подсчета односвязных компонент. 

\mysubitem Приступим к решению первой задачи. В первом параграфе второй главы мы показали, что количество вершин нечетной степени в любом графе есть четное число. Этот факт позволяет установить взаимно-однозначное соответствие между множеством всех четных графов на $n$ вершинах и множеством всех графов, построенных на $(n-1)$-й вершине. 

Действительно, возьмем любой граф $G$, построенный на $(n-1)$-й вершине, добавим к нему еще одну, $n$-ю вершину и соединим ее со всеми вершинами графа $G$ нечетной степени. В результате получим граф на $n$ вершинах, у которого степень любой вершины четная. 

Но количество $g_n$ всех графов на $n$ вершинах нам известно --- оно равно $2^{\BCf{n}{2}}$. Следовательно, количество всех четных графов равно $g_{n-1}=2^{\BCf{n-1}{2}}$. 

\mysubitem Осталось подсчитать количество $e_n$ эйлеровых графов, то есть \emph{связных} графов, у которых степень любой вершины есть четное число. Нам известно, что если $Ei(z)$ есть экспоненциальная производящая функция для чисел $e_n$, а $G(z)$ --- экспоненциальная функция для чисел $g_{n-1}$ всех четных графов, то эти производящие функции связаны равенством
$$
G(z)=\exp(Ei(z))\qquad \Longrightarrow \qquad e_{n+1}=g_n-\sum\limits_{i=1}^{n}\BCf{n}{i}\,e_i\,g_{n-i}=
2^{\BCf{n}{2}}-\sum\limits_{i=1}^{n}\BCf{n}{i}\,e_i\,2^{\BCf{n-i}{2}}.
$$

\myitem  Перечислим теперь двудольные графы, построенные на $n$ вершинах \cite{Wilf}.

\mysubitem На первый взгляд кажется, что подсчитать количество таких графов мы можем и без использования экспоненциальной формулы, с помощью более-менее элементарных комбинаторных соображений. Именно, выделим в $n$-элементном множестве вершин $k$-элементное подмножество $A$, ну и как следствие, $(n-k)$-элементное подмножество $B$. При фиксированном $k$ мы сможем это сделать $\BCf{n}{k}$ способами. Теперь заметим, что при заданных $A$ и $B$ любую вершину из подмножества $A$ мы можем соединить или не соединить с произвольной вершиной подмножества $B$. Иными словами, количество способов построить двудольный граф на подмножествах $A$ и $B$ есть количество всевозможных подмножеств множества $\mathcal{P}$ пар вершин, одна из которых лежит в $A$, а вторая в $B$. Мощность множества $\mathcal{P}$ равна, очевидно, $|A|\cdot |B|=k\cdot (n-k)$, поэтому для каждого разбиения множества вершин на два подмножества $A$ и $B$ имеется $2^{|\mathcal{P}|}=2^{k (n-k)}$ способов построить двудольный граф на этих подмножествах. Всего же мы получаем
\begin{equation}
\label{eq:bicol_bipart_graphs}
c_n=\sum\limits_{k=0}^n \BCf{n}{k}\,2^{k (n-k)}
\end{equation}
способов совершить описанные выше комбинаторные действия.

Однако в приведенных выше рассуждениях имеется одна неточность. Именно, при таком способе подсчета один и тот же двудольный граф встречается несколько раз. В качестве примера выделим в $5$-элементном множестве вершин подмножество $A=\{1,3\}$ и построим на подмножествах $A$ и $B=\{2,4,5\}$ двудольный граф, изображенный на рис. (\ref{fig:bipartite}),a. Оказывается, что формула (\ref{eq:bicol_bipart_graphs}) подсчитывает такой граф дважды. Действительно, тот же самый двудольный граф мы получим, когда в качестве подмножества $A$ мы возьмем множество $\{2,4,5\}$, а в качестве подмножества $B$ множество вершин $\{1,3\}$ (рис. (\ref{fig:bipartite}),b). 

Казалось бы, с этой проблемой несложно справиться, поделив $c_n$ пополам. Однако такой простой способ решения проблемы нас не спасает. Для того, чтобы в этом убедиться, достаточно рассмотреть двудольный граф, изображенный на рис. (\ref{fig:bipartite}),c. В отличие от предыдущего случая, данный граф состоит из двух связных компонент. Такой граф мы по формуле (\ref{eq:bicol_bipart_graphs}) сосчитаем уже четыре раза --- вершина $1$ может попасть как в блок $A$, так и в блок $B$. Независимо от этого вершина $3$ также может оказаться либо в подмножестве $A$, либо в подмножестве $B$. Обобщая этот пример, мы можем сказать, что любой $m$-связный двудольный граф считается по формуле (\ref{eq:bicol_bipart_graphs}) $2^m$ раз.

\begin{figure}[h]
\centering
\begin{tabular}[t]{c}
	\begin{subfigure}[b]{0.31\textwidth}
	\centering
    		\includegraphics[scale=0.7]{pics/bipartite.eps}
 	\caption{}
	\end{subfigure}

	\begin{subfigure}[b]{0.31\textwidth}
	\centering
    		\includegraphics[scale=0.7]{pics/bipartite2.eps}
 	\caption{}
	\end{subfigure}
	
	\begin{subfigure}[b]{0.31\textwidth}
	\centering
    		\includegraphics[scale=0.7]{pics/bipartite3.eps}
 	\caption{}
	\end{subfigure}
\end{tabular}
\caption{Двудольные графы}
\label{fig:bipartite}
\end{figure}





\mysubitem Итак, основная проблема, связанная с формулой (\ref{eq:bicol_bipart_graphs}), состоит в том, что она подсчитывает количество двудольных графов, умноженных на $2^m$, где $m$ есть количество компонент связности в двудольном графе, а это количество нам априори не известно. И вот здесь-то нам и приходит на помощь экспоненциальная формула. 

Действительно, с ее помощью мы можем выразить через числа $c_n$ количество $a_n$ двудольных \emph{связных} графов, одна из долей которых помечена либо как подмножество $A$, либо как подмножество $B$ (см.формулу (\ref{eq:comp_exp_gen_func_rec_a_n})). А таких графов, в свою очередь, ровно в два раза больше количества $\tilde{a}_n$ обыкновенных двудольных \emph{связных} графов, так что $\tilde{a_n}=a_n/2$. Наконец, зная количество всех двудольных связных графов, мы с помощью обратной к (\ref{eq:comp_exp_gen_func_rec_a_n}) формулы (\ref{eq:comp_exp_gen_func_rec_c_n}) можем определить и искомое количество $\tilde{c}_n$ всех двудольных графов на $n$ вершинах: 
$$
\tilde{c}_{n+1}=\sum\limits_{i=0}^n \BCf{n}{i}\tilde{a}_{i+1}\tilde{c}_{n-i}=
\sum\limits_{i=0}^n \BCf{n}{i}\dfrac{a_{i+1}}{2}\tilde{c}_{n-i}.
$$
Здесь
$$
a_{n+1}=\dfrac{1}{c_0}\biggl[c_{n+1}-\sum\limits_{i=1}^n \BCf{n}{i}c_ia_{n+1-i}\biggr],
$$
а коэффициенты $c_n$ вычисляются по формуле (\ref{eq:bicol_bipart_graphs}).

\mysubitem Полезно перевести проведенные выше рассуждения на язык производящих функций. Обозначим для этого через
$$
H(z)=\sum_{n=0}^\infty c_n \frac{z^n}{n!}
$$
экспоненциальную производящую функцию для чисел $c_n$ (\ref{eq:bicol_bipart_graphs}), а через $F(z)$ --- производящую функцию, описывающая количество $a_n$ соответствующих им связных объектов. Аналогичные производящие функции для количества $\tilde{c}_n$ двудольных графов и количества $\tilde{a}_n$ связных двудольных графов обозначим через $\tilde{H}(z)$ и $\tilde{F}(z)$. Согласно комбинаторному смыслу экспоненциальной формулы (\ref{eq:exp_formula}), эти пары функций связаны равенствами вида
$$
H(z)=\exp(F(z)),\qquad \tilde{H}(z)=\exp(\tilde{F}(z)).
$$
Мы выяснили, что числа $a_n$ и $\tilde{a}_n$ отличаются друг от друга в два раза. Как следствие, 
$$
F(z)=2\tilde{F}(z)\qquad \Longrightarrow\qquad \tilde{F}(z)=\dfrac{F(z)}{2}=\dfrac{\ln(H(z))}{2}.
$$
Из последних соотношений можно заключить, что
\begin{equation}
\label{eq:bipartite}
\tilde{H}(z)=\exp\Bigl(\dfrac{1}{2} \ln{H(z})\Bigr)=\sqrt{H(z)}\qquad \Longleftrightarrow\qquad \tilde{H}^2(z)=H(z).
\end{equation}

С помощью равенства (\ref{eq:bipartite}) можно получить еще более простые рекуррентные соотношения для подсчета количества $\tilde{c}_n$ двудольных графов. Приравнивая в равенстве (\ref{eq:bipartite}) коэффициенты при одинаковых степенях $z$, мы получаем, что
$$
\sum_{i=0}^n \binom{n}{i} \tilde{c}_i \tilde{c}_{n-i}= 
\tilde{c}_0\tilde{c}_n+\sum_{i=1}^{n-1} \binom{n}{i} \tilde{c}_i \tilde{c}_{n-i}+\tilde{c}_n\tilde{c}_0= c_n 
\qquad \Longrightarrow \qquad \tilde{c}_n = \dfrac{1}{2\tilde{c}_0} \Bigl (c_n-  \sum_{i=1}^{n-1} \binom{n}{i} \tilde{c}_i \tilde{c}_{n-i} \Bigr ).
$$
 





\myitem Обратимся, наконец, к перечислению всех помеченных деревьев, то есть деревьев, $n$ вершин которых помечены различными целыми числами из диапазона от единицы до $n$. 

\mysubitem Во второй главе мы уже привели доказательство того, что количество $a_n$ таких деревьев равно
$$
a_n=n^{n-2}.
$$
Наша задача состоит в том, чтобы получить этот результат с помощью производящих функций. Оказывается, что при таком подходе нам будет удобнее начать с перечисления так называемых \emph{корневых} помеченных деревьев.

\begin{defin} 
Корневым помеченным деревом называется помеченное дерево, в котором одна из вершин выделена и рассматривается как корень этого дерева. 
\end{defin}

Так как любую из вершин дерева можно выбрать в качестве его корня, то количество $t_n$ корневых деревьев в $n$ раз больше количества $a_n$ всех деревьев. Иными словами, нам с помощью аппарата производящих функций нужно доказать, что количество таких деревьев равно $t_n=n\cdot a_n=n^{n-1}$.  

\mysubitem С комбинаторной точки зрения процесс построения произвольного корневого дерева на $n>1$ вершинах можно представлять себе так: выбираем в качестве корня любую из $n$ вершин, разбиваем оставшееся множество $(n-1)$ вершин на заранее не фиксированное количество $k$ непустых неупорядоченных блоков, строим на каждом из этих блоков размером $i_m$ корневое дерево, а затем соединяем ребрами корни каждого из таких деревьев с выделенной на первом этапе вершиной. На языке производящих функций это означает, что производящая функция $T(z)$ для количества $t_n$ корневых деревьев удовлетворяет следующему функциональному соотношению:
\begin{equation}
\label{eq:num_trees_exp_f}
T(z)=z\cdot\exp(T(z)).
\end{equation}
Все, что теперь осталось --- это научиться решать функциональное уравнение (\ref{eq:num_trees_exp_f}). Технике решения этого и подобных ему рекурсивных уравнений посвящен следующий параграф. 




\section*{Упражнения}

\begin{exerc}
Перечислить помеченные линейные цепочки длины $n$.
\end{exerc}

\begin{exerc} Вывести рекуррентное соотношение для подсчета всех слабо связных орграфов. Пользуясь им, сосчитать количество таких орграфов, построенных на пяти вершинах.
\end{exerc}

\begin{exerc}
Найти производящую функцию для количества простых $2$-регулярных графов.
\end{exerc}

\begin{exerc}
Помеченный граф  на $n$ вершинах $\{x_0, x_1, \dots x_{n-1}\}$называется звёздным многоугольником, если его вершины можно пометить так, что если пара вершин $x_i$ и $x_j$ соединена ребром, то соединены ребрами и все пары вершин вида $x_{i+k}$, $x_{j+k}$, $k=1,\ldots,n-1$, причем индексы вершин берутся по модулю $n$ (см.рис. (\ref{fig:star_polygon})). Доказать, что имеется $2^{\lfloor n/2 \rfloor}$ звёздных многоугольников на $n$ вершинах. 

\begin{figure}[h]
\centering
  \includegraphics[scale=0.8]{pics/star_polygon.eps}
\caption{Звёздный многоугольник}
\label{fig:star_polygon}
\end{figure}

\end{exerc}

\begin{exerc}
Турниром называется ориентированный граф, полученный из полного графа $K_n$ заменой каждого ребра на ориентированное ребро. Очевидно, что количество турниров на $n$ различимых вершинах равно $2^{\BCf{n}{2}}$. Выразить производящую функцию $T^c(x)$ для сильно связных турниров в терминах производящей функции $T(x)$ для всех турниров.
\end{exerc}

\begin{exerc}
Объяснить комбинаторный смысл равенства (\ref{eq:bipartite}).
\end{exerc}


\section*{Решение упражнений}

\begin{sol_exerc}
Рассмотрим вначале помеченные цепочки длины $n>1$, в которых одна из двух крайних вершин выбрана в качестве корня. Таких цепочек, очевидно, имеется $n!$ штук. Теперь заметим, что в любой цепочке крайнюю вершину можно выбрать ровно двумя способами. Таким образом, в случае $n>1$ имеется ровно $\frac{n!}{2}$ линейных цепочек. В случае $n=1$ такая цепочка только одна.
\end{sol_exerc}

\begin{sol_exerc}
Всего имеется $c_n=2^{n(n-1)}$ орграфов, построенных на $n$ вершинах. Количество $a_n$ слабо связных орграфов можно получить из $a_n$ с помощью экспоненциальной формулы. Следовательно, числа $a_n$ и $c_n$ связаны рекуррентным соотношением (\ref{eq:comp_exp_gen_func_rec_a_n})
$$
a_{n+1}=c_{n+1}-\sum\limits_{i=1}^{n}\BCf{n}{i}\,c_i\,a_{n+1-i}=
2^{n(n+1)}-\sum\limits_{i=1}^{n}\BCf{n}{i}\,a_i\,2^{(n+1-i)(n-i)}.
$$
С помощью этого рекуррентного соотношения можно сосчитать количество $a_5$ слабо связных графов на пяти вершинах, равное $1027080$. 
\end{sol_exerc}

\begin{sol_exerc}
Каждый такой граф представляет собой объединение нескольких неориентированных циклов, длина которых больше двух. Каждый отдельный цикл на $n$ вершинах, $n > 2,$ можно построить $\frac{(n-1)!}{2}$ способами. Соответствующая этим числам производящая функция имеет следующий вид:
$$
F(z)=\frac{z^3}{2 \cdot 3} + \frac{z^4}{2 \cdot  4} + \dots +  \frac{z^n}{2 \cdot n} + \dots =\dfrac{1}{2}\ln\dfrac{1}{1-z}-\dfrac{z}{2}-\dfrac{z^2}{4}.
$$
Согласно комбинаторному смыслу экспоненциальной формулы (\ref{eq:exp_formula}), количество способов разбить $n$-элементное множество вершин на произвольное количество непустых неупорядоченных блоков, а затем построить в каждом блоке неориентированный цикл, описывается коэффициентами при $z^n/n!$ у экспоненциальной производящей функции
$$
G(z)=e^{ F(z)}=\sqrt{\frac{ e^{-z^2/2} \cdot e^{-z}}{1-z}}.
$$
\end{sol_exerc}

\begin{sol_exerc}
Определим для каждой пары вершин $i$ и $j$, $j > i,$ величину $d(i,j):=\min(j-i,i+n-j)$. Из определения звёдного многоугольника следует, что все пары вершин, для которых эти величины равны, должны быть одновременно либо соединены рёбрами, либо нет. Осталось посчитать, сколько возможных значений может принимать указанная величина для графа на $n$ вершинах. Наибольшее её значение достигается на паре вершин $i$ и $i + \lfloor n/2 \rfloor$, а наименьшее — на паре вершин $i$ и $i+1$. Кроме того, она может принимать также и любые целочисленные промежуточные значения. Следовательно, имеется $\lfloor n/2 \rfloor$ возможных значений величины $d(i,j).$ Для каждого такого значения можно либо соединить, либо не соединить соответствующие пары вершин ребром. Это и доказывает, что звёздных многоугольников на $n$ вершинах имеется $2^{ \lfloor n/2 \rfloor}$ штук.
\end{sol_exerc}

\begin{sol_exerc}
Ключевое наблюдение состоит в том, что граф компонент сильной связности турнира есть линейно упорядоченная цепочка своих сильно связных компонент. Отсюда сразу же следует, что производящие функции $T(z)$ и $T_c(z)$ связаны соотношением вида 
$$
T(z)=\frac{1}{1-T^c(z)} \qquad \Longrightarrow \qquad T^c(z)=1-\frac{1}{T(z)}.
$$
\end{sol_exerc}

\begin{sol_exerc}
Левая часть равенства (\ref{eq:bipartite}) описывает количество способов разбить $n$-элементное множество на два различимых подмножества $C$ и $D$, после чего на каждом из этих подмножеств построить по (возможно, несвязному) двудольному графу. Правая же его часть описывает количество способов разбить $n$-множество на два различимых подмножества $A$ и $B$, после чего построить на этих подмножествах двудольный граф, одна из долей которого принадлежит подмножеству $A$, а вторая --- подмножеству $B$. 

Более наглядно описанный выше процесс построения двудольного графа можно описывать с помощью окраски вершин этого графа. Именно, в первом случае можно считать, что мы разбиваем $n$-множество на два подмножества $C$ и $D$, красим все вершины подмножества $C$ в красный цвет, а все вершины подмножества $D$ --- в синий, а затем строим на подмножестве $C$ двудольный граф, все ребра и вершины которого окрашены в красный цвет, а на подмножестве $D$ --- двудольный граф, все ребра и вершины которого окрашены в синий цвет. Напротив, во втором случае мы разбиваем $n$-множество на два подмножества $A$ и $B$, вершины подмножества $A$ красим в красный цвет, вершины подмножества $B$ --- в синий, а затем строим на $n$-множестве двудольный граф так, что вершины одной его доли окрашены в красный, а вершины второй доли --- в синий цвет.

Очевидно, что между двумя такого рода способами окраски имеется биекция. Действительно, возьмем двудольный граф, окрашенный вторым способом, в каждой компоненте связности выберем вершину с минимальным номером и окрасим всю компоненту связности в цвет этой вершины. Очевидно, что это преобразование обратимо: исходную раскраску двудольного графа можно однозначно восстановить, зная цвет вершины с наименьшим номером в каждой компоненте связности.
\end{sol_exerc}



\section{Формула обращения Лагранжа}

\myitem Вернемся к теории формальных степенных рядов. Выделим в кольце $K[[x]]$ формальных степенных рядов вида
$$
f(z)=a_0+a_1z+a_2z^2+\ldots+a_nz^n+\ldots
$$ 
множество $z\,K[[z]]$ формальных степенных рядов с нулевым свободным членом. На таком множестве, как мы уже знаем, можно ввести операцию композиции $g(f(z))$. Исследуем свойства этой операции.

\mysubitem Несложно убедиться в том, что эта операция ассоциативна, и что для нее существует нейтральный элемент, равный $z$. Следовательно, множество $z\,K[[z]]$ с введенной на нем бинарной операцией композиции образует моноид (полугруппу с единицей) относительно этой операции. 

\begin{defin} 
Формальный степенной ряд $g(z)$ называется обратным к $f(z)\in z\,K[[z]]$ (в смысле композиции), если 
$$
g(f(z))=f(g(z))=z.
$$
\end{defin}

Оказывается, не все элементы множества $z\,K[[z]]$ имеют обратный (как следствие, $z\,K[[z]]$ вместе с введенной на нем операцией композиции группой не является). Следующая простая теорема дает необходимое и достаточное условие существования обратного к $f(z)$ в смысле композиции элемента $g(z)\in z\,K[[z]]$.  

\begin{theor} 
\label{theor:inv_f} 
Формальный степенной ряд
$$
f(z)=a_1z+a_2z^2+\ldots+a_nz^n+\ldots
$$
имеет обратный ряд $g(z)$ тогда и только тогда, когда коэффициент $a_1$ отличен от нуля. При этом такой обратный элемент $g(z)$ единственен. 
\end{theor}

\evidp Предположим, что формальный степенной ряд
$$
g(z)=b_1z+b_2z^2+\ldots+b_nz^n+\ldots
$$
удовлетворяет равенству $g(f(z))=z$, или, более подробно, 
$$
b_1(a_1z+a_2z^2+\ldots)+b_2(a_1z+a_2z^2+\ldots)^2+b_3(a_1z+a_2z^2+\ldots)^3+\ldots=z.
$$
Приравнивая коэффициенты при одинаковых степенях $z$, мы получаем бесконечную цепочку линейных уравнений на коэффициенты $b_n$ вида
\begin{equation}
\label{eq:lin_chain}
\begin{array}{rcl}
a_1b_1&=&1,\\[2ex]
a_2b_1+a_1^2b_2&=&0,\\[2ex]
a_3b_1+2a_1a_2b_2+a_1^3b_3&=&0,\\[2ex]
&\vdots&
\end{array}
\end{equation}
из которой (при условии, что $a_1\neq 0$) последовательно и однозначно можно найти коэффициенты $b_1,b_2,b_3,\ldots$. 

Аналогичные рассуждения показывают, что и в случае $f(g(z))=z$ коэффициенты $b_n$ определяются по тем же самым формулам. Иными словами, в случае $a_1\neq 0$ формальный степенной ряд $g(z)$, удовлетворяющий соотношениям $g(f(z))=f(g(z))=z$, существует и единственен. \qed 

\mysubitem Теорема \ref{theor:inv_f} уже позволяет нам получить из уравнения (\ref{eq:num_trees_exp_f}) количество корневых помеченных деревьев. Действительно, введем формальные степенные ряды
$$
t(z):=\hat{t}_1z+\hat{t}_2z^2+\hat{t}_3z^3+\ldots,\qquad \qquad \hat{t}_n=\dfrac{t_n}{n!}
$$
и
$$
e(z):=e_0+e_1z+e_2z^2+e_3z^3+\ldots,\qquad \qquad e_n=\dfrac{1}{n!}.
$$
В этих обозначениях формула (\ref{eq:num_trees_exp_f}) переписывается так:
\begin{equation}
\label{eq:prom_1}
t(z)=z\cdot e(t(z))\qquad \Longleftrightarrow \qquad \dfrac{t(z)}{e(t(z))}=z.
\end{equation}
Определим теперь формальный степенной ряд $g(z)\in z\,K[[z]]$ по формуле
$$
g(z)=\dfrac{z}{e(z)}.
$$
С учетом этого обозначения формула (\ref{eq:prom_1}) может быть записана в следующем виде:
$$
g(t(z))=z.
$$
Несложно проверить, что 
$$
g(z)=z-z^2+\dfrac{1}{2!}z^3-\dfrac{1}{3!}z^4+\ldots
$$
Зная коэффициенты этого ряда, можно с помощью цепочки равенств (\ref{eq:lin_chain}) последовательно сосчитать числа $\hat{t_n}$, а следовательно, и количество $t_n$ всех корневых помеченных деревьев, построенных на $n$ вершинах:
$$
\begin{array}{lclcl}
z^1:\quad \hat{t}_1=1&\Longrightarrow&\hat{t}_1=1&\Longrightarrow&t_1=1!\cdot 1=1,\\[2ex]
z^2:\quad -\hat{t}_1+\hat{t}_2=0&\Longrightarrow&\hat{t}_2=1&\Longrightarrow&t_2=2!\cdot 1=2,\\[2ex]
z^3:\quad \hat{t}_1/2-2\hat{t}_2+\hat{t}_3=0&\Longrightarrow&\hat{t}_3=3/2&\Longrightarrow&t_3=3!\cdot 3/2=9,\quad \ldots
\end{array}
$$

\myitem Итак, нам удалось с помощью формулы (\ref{eq:num_trees_exp_f}) построить алгоритм подсчета количества всех помеченных корневых деревьев. Нам же хочется большего --- доказать, что из этой формулы следует известное нам явное выражение $t_n=n^{n-1}$ для количества таких деревьев. Для достижения этой цели нам вновь прийдется вернуться к теории формальных степенных рядов.

\mysubitem Кольцо формальных степенных рядов $K[[z]]$ удобно иногда рассматривать как вложение в некую более широкую алгебраическую структуру --- поле $K((z))$ формальных рядов Лорана вида
$$
\phi(z)=\sum\limits_{n=k}^{+\infty}a_nz^n,\qquad\qquad k\in\Z,
$$
то есть формальных степенных рядов, имеющих конечное число слагаемых с отрицательными степенями $z$. Для читателей, знакомых с теорией алгебраических структур, следует отметить, что $K((z))$ можно рассматривать как поле частных кольца $K[[z]]$ (см., например, \cite{Stanley_2}). 

\begin{defin} Коэффициент $a_{-1}$ при $z^{-1}$ в ряде Лорана $\phi(z)\in K((z))$ называется \emph{вычетом} ряда $\phi(z)$ и обозначается как $\Res(\phi(z))$. 
\end{defin}

\begin{theor}[Лагранж]
Пусть 
$$
f(z)=a_1z+a_2z^2+\ldots+a_nz^n+\ldots,\qquad a_1\neq 0,
$$
$$
g(z)=b_1z+b_2z^2+\ldots+b_nz^n+\ldots,\qquad b_1\neq 0,
$$
есть пара формальных степенных рядов, взаимно-обратных по отношению к операции композиции, то есть таких, что $f(g(z))=g(f(z))=z$. Тогда коэффициент $b_n$ равен вычету формального ряда Лорана $\phi(z)=1/(n\cdot f^n(z))$:
\begin{equation}
\label{eq:formula_Lagr}
b_n:=[z^n]\,g(z)=\Res\biggl(\dfrac{1}{n\,f^n(z)}\biggr)=\dfrac{1}{n}[z^{-1}]\dfrac{1}{f^n(z)}.
\end{equation}
\end{theor}

\evidp Распишем подробнее равенство $g(f(z))=z$:
$$
b_1f(z)+b_2f^2(z)+\ldots+b_nf^n(z)+\ldots=z.
$$
Дифференцируя последнее соотношение по $z$, получаем
$$
b_1f'(z)+2 b_2f(z)f'(z)+\ldots+n b_nf^{n-1}(z)f'(z)+\ldots=1.
$$
Теперь поделим полученное равенство на $f^n(z)$:
\begin{equation}
\label{eq:prom_Lor}
b_1\dfrac{f'(z)}{f^n(z)}+2b_2\dfrac{f'(z)}{f^{n-1}(z)}+\ldots+n\,b_n\dfrac{f'(z)}{f(z)}+(n+1)\,b_{n+1}f'(z)+\ldots=\dfrac{1}{f^n(z)}.
\end{equation}

Сосчитаем коэффициент при $z^{-1}$ в левой части равенства (\ref{eq:prom_Lor}). Оказывается, ненулевой вклад в коэффициент при $z^{-1}$ может давать только слагаемое $n\,b_n\,f'(z)/f(z)$, а вклад от остальных слагаемых в этот коэффициент равен нулю. 

Действительно, для любых $k\neq 1$  выражение вида $f^k(z)\,f'(z)$ можно переписать в виде
$$
f^k(z)\cdot f'(z)=\dfrac{1}{k+1}(f^{k+1}(z))',\qquad\qquad k=-n,-n+1,\ldots,-2,0,1,2,\ldots
$$
Заметим теперь, что если функция $\phi(z)\in K((z))$, то есть представляет собой формальный ряд Лорана
$$
\phi(z)=\dfrac{c_{-n}}{z^n}+\dfrac{c_{-n+1}}{z^{n-1}}+\ldots+\dfrac{c_{-1}}{z}+c_0+c_1z+c_2z^2+\ldots,
$$
то производная такого ряда имеет вид
$$
\phi'(z)=-n\dfrac{c_{-n}}{z^{n+1}}-(n-1)\dfrac{c_{-n+1}}{z^{n}}-\ldots-\dfrac{c_{-1}}{z^2}+c_1+2c_2z+\ldots
$$
и не содержит слагаемого с $1/z$. Иными словами, вычет функции $\phi'(z)=0$ для любой $\phi(z)\in K((z))$. Как следствие, все коэффициенты при $z^{-1}$ в слагаемых вида $f^k(z)\,f'(z)$ в случае $k\neq -1$ действительно равны нулю.

Для завершения доказательства остается заметить, что коэффициент при $z^{-1}$ в выражении 
$$
\dfrac{f'(z)}{f(z)}=\dfrac{a_1+2a_2z+3a_3z^2+\ldots}{a_1z+a_2z^2+\ldots}=\dfrac{1}{z}\biggl[
\dfrac{1+2\frac{a_2}{a_1}z+\ldots}{1+\frac{a_2}{a_1}z+\ldots}\biggr]
$$
равен единице. Действительно, это означает, что коэффициент при $z^{-1}$ в левой части равенства (\ref{eq:prom_Lor}) равен $n\,b_n$, то есть коэффициент $b_n$ действительно равен деленному на $n$ вычету стоящей в правой части (\ref{eq:prom_Lor}) функции $1/f^n(z)$. \qed

\mysubitem При перечислении деревьев мы пришли к уравнению (\ref{eq:prom_1}), являющемуся частным случаем уравнения вида
\begin{equation}
\label{eq:recurs_Lagr}
g(z)=z\cdot r(g(z)).
\end{equation}
в котором 
\begin{equation}
\label{eq:two_series}
g(z)=b_1z+b_2z^2+\ldots,\qquad b_1\neq 0,
\qquad\qquad
r(z)=a_0+a_1z+a_2z^2+\ldots,\qquad a_0\neq 0.
\end{equation}
Такие уравнения довольно часто встречаются на практике, поэтому имеет смысл сформулировать для них утверждение, аналогичное (\ref{eq:formula_Lagr}).

\begin{conseq} 
Пусть два формальных степенных ряда (\ref{eq:two_series}) связаны между собой соотношением (\ref{eq:recurs_Lagr}). Тогда коэффициенты $b_n$ формального степенного ряда $g(z)$ выражаются через коэффициенты ряда $r(z)$ по формулам
\begin{equation}
\label{eq:formula_Lagr_mod}
b_n:=[z^n]\,g(z)=\dfrac{1}{n}[z^{n-1}]r^n(z).
\end{equation}
\end{conseq}

\evidp Перепишем уравнение (\ref{eq:recurs_Lagr}) в виде
$$
\dfrac{g(z)}{r(g(z))}=z
$$
и введем функцию $f(z)=z/r(z)$. В результате мы вместо (\ref{eq:recurs_Lagr}) получаем уравнение
$$
f(g(z))=z=g(f(z)).
$$
Теперь для определения коэффициентов $b_n$ можно воспользоваться формулой Лагранжа (\ref{eq:formula_Lagr}):
$$
b_n=[z^n]g(z)=\dfrac{1}{n}[z^{-1}]\dfrac{1}{f^n(z)}.
$$
Вспоминая, что $f(z)=z/r(z)$, последнюю формулу можно переписать так:
$$
b_n=[z^n]g(z)=\dfrac{1}{n}[z^{-1}]\dfrac{r^n(z)}{z^n}.
$$
Для доказательства (\ref{eq:formula_Lagr_mod}) осталось заметить, что если
$$
\phi(z)=\dfrac{c_{-n}}{z^n}+\ldots+\dfrac{c_{-1}}{z}+c_0+c_1z+\ldots=\dfrac{r^n(z)}{z^n}=:
\dfrac{1}{z^n}[\hat{a}_0+\hat{a}_1z+\ldots+\hat{a}_{n-1}z^{n-1}+\hat{a}_nz^n+\ldots],
$$
то коэффициент $c_{-1}$ при $z^{-1}$ совпадает с коэффициентом $\hat{a}_{n-1}$ в правой части последнего равенства:
$$
\Res(\phi(z))=c_{-1}=\Res\biggl(\dfrac{r^n(z)}{z^n}\biggr)=\hat{a}_{n-1}=[z^{n-1}]r^n(z).
$$
\qed

\begin{rem} 
Помимо формальных, существуют и чисто комбинаторные доказательства равенства (\ref{eq:formula_Lagr_mod}). Одно из таких доказательств, основанное на теории комбинаторных видов, можно посмотреть в \cite{Comb_Species,Intro_Theor_Species}.
\end{rem}

\mysubitem В качестве приложения доказанного выше результата (\ref{eq:formula_Lagr_mod}) получим, наконец, с помощью равенства (\ref{eq:num_trees_exp_f}) количество всех корневых помеченных деревьев. 

В этом частном случае $b_n=\hat{t}_n$, $r(z)=e(z)$, 
$$
e^n(z)=1+nz+\dfrac{n^2}{2!}z^2+\ldots+\dfrac{n^n}{n!}z^n+\ldots,
$$
и потому
$$
\hat{t}_n=\dfrac{1}{n}[z^{n-1}]e^n(z)=\dfrac{1}{n}\dfrac{n^{n-1}}{(n-1)!}=\dfrac{n^{n-1}}{n!}\qquad \Longrightarrow\qquad t_n=n^{n-1}.
$$

\mysubitem В параграфе, посвященном экспоненциальной формуле, мы упоминали, что если экспоненциальная производящая функция $F(z)$ перечисляет некоторые односвязные структуры, то функция вида $[F(z)]^k/k!$ перечисляет соответствующие $k$-связные структуры. С этой точки зрения полезным оказывается следующее обобщение теорем (\ref{eq:formula_Lagr}) и (\ref{eq:formula_Lagr_mod}).

\begin{theor}
Пусть 
$$
f(z)=a_1z+a_2z^2+\ldots+a_nz^n+\ldots,\qquad a_1\neq 0,
$$
$$
g(z)=b_1z+b_2z^2+\ldots+b_nz^n+\ldots,\qquad b_1\neq 0,
$$
есть пара формальных степенных рядов, взаимно-обратных по отношению к операции композиции, то есть таких, что $f(g(z))=g(f(z))=z$. Тогда коэффициент при $z^n$ у функции $g^k(z)$ равен вычету формального ряда Лорана $\phi(z)=kz^{k-1}/(n\cdot f^n(z))$:
\begin{equation}
\label{eq:formula_Lagr_k}
[z^n]\,g^k(z)=\Res\biggl(\dfrac{kz^{k-1}}{n\,f^n(z)}\biggr)=\dfrac{1}{n}[z^{-1}]\dfrac{kz^{k-1}}{f^n(z)}. 
\end{equation}
В случае же, когда формальные степенные ряды вида (\ref{eq:two_series}) связаны равенством $g(z)=z\cdot r(g(z))$, 
соответствующий коэффициент вычисляется по формуле
\begin{equation}
\label{eq:formula_Lagr_k_mod}
[z^n]\,g^k(z)=\dfrac{k}{n}[z^{n-k}]r^n(z).
\end{equation}
\end{theor}

\evids этих равенств практически полностью повторяют доказательство теоремы Лагранжа (\ref{eq:formula_Lagr}) и его следствия (\ref{eq:formula_Lagr_mod}).

В качестве примера вновь вернемся к корневым помеченным деревьям. В этом случае 
$$
[z^n]t^k(z)=\dfrac{k}{n}[z^{n-k}]e(nz)=\dfrac{k}{n}\cdot \dfrac{n^{n-k}}{(n-k)!},
$$
поэтому количество $k$-компонентных корневых помеченных деревьев на $n$-элементном множестве вершин равно
$$
\dfrac{n!}{k!}\cdot \dfrac{k}{n}\cdot \dfrac{n^{n-k}}{(n-k)!}=\BCf{n-1}{k-1}n^{n-k}.
$$

\mysubitem Формула (\ref{eq:formula_Lagr}) была получена Лагранжем в конце XVIII века как результат решения задачи о построении функции, обратной данной. Именно, пусть у нас имеется функция
$$
y=f(x)=a_1x+a_2x^2+\ldots+a_nx^n+\ldots
$$
Требуется построить обратную к ней функцию
$$
x=g(y)=b_1y+b_2y^2+\ldots+b_ny^n+\ldots
$$
Так как $y=f(x)$, то задача эквивалентна нахождению коэффициентов $b_n$ ряда $g(z)$ по коэффициентам $a_n$ ряда $f(z)$ при условии, что эти ряды связаны равенством вида $z=g(f(z))$. 

Данная задача была обобщена современником Лагранжа Гансом Бурманом (Hans B\"urmann). Бурман захотел построить разложение заданной функции $G(z)$ в ряд 
$$
G(z)=b_0+b_1f(z)+b_2f^2(z)+\ldots+b_nf^n(z)+\ldots
$$
по степеням известной функции $f(z)$. В частном случае
$$
G(z)=z,\qquad f(z)=a_0+a_1z+a_2z^2+\ldots,
$$
мы приходим к задаче Лагранжа об обращении заданной функции $y=f(x)$. Бурман показал, что в более общей постановке произвольной функции $G(z)$ коэффициенты $b_n$ определяются по формулам
$$
b_n=\dfrac{1}{n!}\lim_{z\to 0}\dfrac{d^{n-1}}{dz^{n-1}}\biggl\{G'(z)\dfrac{z^n}{f^n(z)}\biggr\},\qquad n=1,2,\ldots
$$
В XX веке выяснилось, что и такая более общая задача имеет многочисленные приложения в комбинаторике (смотри, например, \cite{Comb_Species,Intro_Theor_Species}).


\section*{Упражнения}

\begin{exerc} 
Перечислить помеченные корневые деревья, в которых каждая вершина либо является листом, либо имеет ровно $k$ потомков.
\end{exerc}

\begin{exerc} 
Перечислить помеченные деревья, вершины которых имеют только степени $1$ и $3.$
\end{exerc}

\begin{exerc} 
Найти количество треугольных кактусов на $n$ помеченных вершинах. 
\end{exerc}


\section*{Решение упражнений}

\begin{sol_exerc}
Удалив корень в произвольном дереве указанного вида, мы получим либо пустое дерево, либо набор из $k$ неупорядоченных корневых деревьев такого же вида. Таким образом, уравнение для производящей функции, перечисляющей соответствующие деревья, выглядит так: 
$$
F(z)=z\Bigl(1+\frac{F^k(z)}{k!}\Bigr) \qquad \Longleftrightarrow \qquad F(z)=z\cdot r(F(z)), \qquad\text{где} \qquad r(z)=1+z^k/k!.
$$
Для вычисления коэффициентов производящей функции $F(z)$ применим формулу обращения (\ref{eq:formula_Lagr_mod}):
$$
[z^n]F(z)=\frac{1}{n}[z^{n-1}]\Bigl(1+\frac{z^k}{k!}\Bigr)^n \quad \Longrightarrow \quad [{z^{n}}/{n!}]F(z)=(n-1)![z^{n-1}]\sum_{i=0}^n \BCf{n}{i}\frac{z^{ik}}{(k!)^i}.
$$
Таким образом, ответ равен 
$$
\frac{(n-1)!}{ (k! )^i} \cdot \BCf{n}{i},\qquad \text{где} \qquad i=\frac{n-1}{k},
$$
если $n-1$ делится на $k$, и нулю в противном случае.
\end{sol_exerc}


\begin{sol_exerc} Перечислим вначале корневые деревья с указанным свойством. Если в любом таком дереве удалить корень, то останется либо одно, либо три корневых дерева, у которых каждая вершина либо является листом, либо имеет двух потомков. Таким образом, соответствующая производящая функция $F(z)$, описывающая количество таких деревьев, удовлетворяет равенству
$$
F(z)=z\Bigl(G(z)+\frac{G^3(z)}{3!}\Bigr),
$$
где $G(z)$ — производящая функция, описывающая корневые помеченные деревья, у которых каждая вершина, не являющаяся листом, имеет ровно двух потомков. Такая производящая функция, в свою очередь, удовлетворяет функциональному уравнению вида
$$
G(z)=z\Bigl(1 + \frac{G^2(z)}{2!}\Bigr) \qquad \Longleftrightarrow \qquad G(z)=z\cdot r(G(z)), \qquad\text{где} \qquad r(z)=1+z^2/2.
$$ 

Нам нужно вычислить коэффициенты функций $G(z)$ и $\frac{G^3(z)}{3!}$. Применяя формулу обращения (\ref{eq:formula_Lagr_mod}) и учитывая результаты предыдущего упражнения, получаем, что 
$$
[z^n]G(z)=\frac{1}{n}[z^{n-1}]\Bigl(1+\frac{z^2}{2}\Bigr)^n \qquad \Longrightarrow \qquad  
[z^n/n!]G(z)=\frac{(n-1)!}{ 2^i} \cdot \BCf{n}{i},\qquad \text{где} \qquad i=\frac{n-1}{2},
$$
если $n-1$ делится на два, и нулю в противном случае. Удобно ввести индекс $k$ по формуле $n=2k+1$. Тогда последний результат можно переписать следующим образом:
$$
[{z^{2k+1}}/{(2k+1)!}]G(z)=\frac{(2k)!}{2^k} \BCf{2k+1}{k}.
$$
Аналогично, используя формулу (\ref{eq:formula_Lagr_k_mod}), получаем, что
$$
[z^n]G^3(z)=\frac{3}{n}[z^{n-3}]\Bigl(1+\frac{z^2}{2}\Bigr)^n \quad \Longrightarrow \quad 
[{z^{2k+3}}/{(2k+3)!}]\frac{G^3(z)}{3!}=\frac{(2k+2)!}{2^{k+1}} \BCf{2k+3}{k}.
$$

Заметим теперь, что если экспоненциальные производящие функции $F(z)$ и $H(z)$ связаны равенством вида $F(z)=z\cdot H(z)$, то связь их коэффициентов имеет вид $f_n=n\cdot h_{n-1}$. В нашем случае $H(z)=G(z)+\frac{G^3(z)}{3!}$, а $F(z)$ описывает количество корневых деревьев. Нам же требуется найти количество некорневых деревьев, а их в $n$ раз меньше, чем корневых. Таким образом, ответом на поставленную задачу является коэффициент $h_{n-1}$, который для нашей задачи равен коэффициенту при ${z^{n-1}}/{(n-1)!}$ у производящей функции $H(z)=G(z)+\frac{G^3(z)}{3!}.$

Количество некорневых деревьев со степенями вершин $1$ или $3,$ таким образом, равно нулю для нечетных значений $n$, а для чётных значений $n$ выражается по формуле
$$
f_{2k}=\frac{(2k-2)!}{2^{k-1}} \Biggl ( \BCf{2k-1}{k-1} + \BCf{2k-1}{k-2} \Biggr ) = \frac{(2k-2)!}{2^{k-1}} \BCf{2k}{k-1}.
$$
\end{sol_exerc}

\begin{sol_exerc}
Обозначим через $F(z)$ производящую функцию для количества корневых кактусов. При удалении корня любой корневой кактус распадается на некоторое заранее не фиксированное количество структур следующего вида: два корневых кактуса, корни которых соединены ребром. Каждая такая структура описывается производящей функцией $F^2(z)/2$. Таким образом, производящая функция для корневых кактусов удовлетворяет уравнению
$$
F(z)=z\cdot e^{F^2(z)/2} \qquad \Longleftrightarrow \qquad F(z)=z\cdot r(z), \qquad\text{где} \quad r(z)=e^{z^2/2}.
$$
Применяя формулу обращения (\ref{eq:formula_Lagr_mod}), получаем, что 
$$
[z^n]F(z)=\frac{1}{n}[z^{n-1}](e^{z^2/2})^n \qquad \Longrightarrow \qquad [{z^{n}}/{n!}]F(z)=(n-1)![z^{n-1}]e^{\frac{n}{2}z^2} = (n-1)![z^{n-1}] \sum_{i=0}^\infty \Bigl (\frac{n}{2} \Bigr )^i \cdot \frac{z^{2i}}{i!}.
$$
Ненулевой коэффициент получится при $n=2k+1$. Значит, количество корневых кактусов $f_n$ будет равно нулю при чётных $n$, а при нечётных $n$ его можно вычислить по формуле
$$
f_{2k+1}=\frac{(2k)! \,(2k+1)^k}{2^k\,k!} = (2k+1)^k \cdot (2k-1)!!.
$$ 
Отсюда следует, что количество некорневых кактусов на $2k+1$ помеченной вершине равно $(2k+1)^{k-1} \cdot (2k-1)!!$.

\end{sol_exerc}



\bibliography{Ref_book}
\bibliographystyle{plain}

\end{document}